Les paramètres requis dans une error
fonction Ajax sont jqXHR, exception
et vous pouvez l'utiliser comme ci-dessous:
$.ajax({
url: 'some_unknown_page.html',
success: function (response) {
$('#post').html(response.responseText);
},
error: function (jqXHR, exception) {
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
$('#post').html(msg);
},
});
DÉMO FIDDLE
Paramètres
jqXHR:
C'est en fait un objet d'erreur qui ressemble à ceci
Vous pouvez également afficher cela dans votre propre console de navigateur, en utilisant console.log
à l'intérieur de la error
fonction comme:
error: function (jqXHR, exception) {
console.log(jqXHR);
// Your error handling logic here..
}
Nous utilisons la status
propriété de cet objet pour obtenir le code d'erreur, comme si nous obtenons status = 404, cela signifie que la page demandée est introuvable. Cela n'existe pas du tout. Sur la base de ce code d'état, nous pouvons rediriger les utilisateurs vers la page de connexion ou tout ce que notre logique métier requiert.
exception:
Il s'agit d'une variable de chaîne qui montre le type d'exception. Donc, si nous obtenons une erreur 404, le exception
texte serait simplement une «erreur». De même, nous pourrions obtenir 'timeout', 'abort' comme d'autres textes d'exception.
Avis de dépréciation: lejqXHR.success()
, jqXHR.error()
, et jqXHR.complete()
callbacks sont OBSOLETE jQuery 1.8. Pour préparer votre code pour leur suppression éventuelle, utiliser jqXHR.done()
, jqXHR.fail()
et à la jqXHR.always()
place.
Donc, si vous utilisez jQuery 1.8 ou supérieur, nous devrons mettre à jour la logique de la fonction de succès et d'erreur comme: -
// Assign handlers immediately after making the request,
// and remember the jqXHR object for this request
var jqxhr = $.ajax("some_unknown_page.html")
.done(function (response) {
// success logic here
$('#post').html(response.responseText);
})
.fail(function (jqXHR, exception) {
// Our error logic here
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
$('#post').html(msg);
})
.always(function () {
alert("complete");
});
J'espère que ça aide!
dataType
pas le casdatatype
.