El manejo de errores jQuery AJAX se implementa para controlar si el HTTP Request
tiene un error, no si el script devuelve "error" o "éxito". Si el servidor arroja un error (404 Not Found o 500 Server Error como ejemplo), activará las funciones de error de jQuery. Puede manejarse de varias maneras, pero una buena manera es mostrar un div que le indique al usuario que hubo un error.
HTML
<div id="error" style="display: none">There was an error processing your last request</div>
jQuery
$(function(){
$("#error").ajaxError(function(){
var $error = $(this);
$error.slideDown(500, function(){
window.setTimeout(function(){
$error.slideUp(500);
}, 2000);
});
});
});
Si se produce un error, ninguno de los métodos de "éxito" se disparará, y que div
se deslizará hacia abajo, esperar 2 segundos, luego deslízate hacia arriba.
Prueba de su guión de errores
Como ya he dicho lo que usted describe suena como su script del servidor es el envío de "error" o "éxito" o algo similar de nuevo al cliente.
Si está usando un $.post
, por ejemplo, el código de manejo de errores podría tener este aspecto:
$.post('/your/url', { save_me: true }, function(data){
if(data == "error"){
// handle error
} else {
// handle success
}
}
Bill, esto parece útil, ¿puedes darme una idea de lo que exactamente se haría eco de la secuencia de comandos PHP que permitiría el jquery para recoger (es decir, veo que sería "Inicio de sesión inválido", pero ¿Puedo hacerme eco de más información que eso?) –
+1 ¡Gran respuesta, Bill! Creo que el nombre del parámetro 'xhr' en la devolución de llamada' success' es engañoso, ya que solo los datos devueltos no son el objeto 'xhr'. –
Dave, puede devolver lo que quiera devolver, solo tenga en cuenta el tipo de datos que está utilizando. Para cosas simples como este ejemplo, el tipo de datos predeterminado es correcto, para datos más complejos, vea los otros tipos de datos disponibles. Por ejemplo, para usar datos JSON, haga que el código php envíe datos JSON. Mire los documentos jquery para $ ajax para ver cómo configurar dataType, también mire los documentos php para los métodos JSON. Doug, buen punto. – Bill