143 votes

Fonction d'erreur ajax de jQuery

J'ai un appel ajax qui transmet des données à une page qui renvoie ensuite une valeur.

J'ai récupéré l'appel réussi à partir de la page mais je l'ai codé de telle sorte qu'il soulève une erreur dans l'asp. Comment puis-je récupérer cette erreur à partir de Jquery ?

Par exemple :

cache: false,
url: "addInterview_Code.asp",
type: "POST",
datatype: "text",
data: strData,
success: function (html) {
    alert('successful : ' + html);
    $("#result").html("Successful");
},
error: function (error) {
    **alert('error; ' + eval(error));**
}

C'est l'erreur que je ne comprends pas. Dans la fonction, quel paramètre dois-je mettre, pour pouvoir ensuite utiliser le message d'erreur que j'ai reçu ? soulevé dans le serveur.

0 votes

Il y a une erreur de frappe : c'est dataType pas datatype .

0 votes

7 votes

@alej27 : la formulation est un peu bizarre, mais il n'est pas dit que vous ne pouvez pas les utiliser tous les deux, il est dit qu'une requête ne pourra pas appeler success et error (parce qu'ils sont mutuellement exclusifs).

2voto

increddibelly Points 145

Vous utilisez une fonction

error(error) 

mais jquery cherche en fait une fonction avec trois paramètres :

error(jqXHR, textStatus, errorThrown)

vous devrez ajouter deux paramètres supplémentaires.

ÉGALEMENT : veuillez consulter tous les commentaires ci-dessus qui mentionnent "déprécié" :)

$.ajax("www.stackoverflow.com/api/whatever", {
    dataType:"JSON"
    data: { id=1, name='example' }
}).succes(function (result) {
    // use result
}).error(function (jqXHR, textStatus, errorThrown) {
    // handle error
});

1voto

PouriaDiesel Points 344

Vous pouvez utiliser quelque chose comme ça :
note : responseText retourne le serveur response y statusText renvoie la version prédéfinie de
message pour status erreur.par exemple
responseText renvoie quelque chose comme "Not Found (#404)" dans certains cadres comme Yii2 mais
statusText renvoie à "Not Found" .

$.ajax({
    cache: false,
    url: "addInterview_Code.asp",
    type: "POST",
    datatype: "text",
    data: strData,
    success: function (html) {
        alert('successful : ' + html);
        $("#result").html("Successful");
    },
    error: function (data) {
        console.log(data.status + ':' + data.statusText,data.responseText);
    }
});

0voto

John Kloian Points 437

De jquery.com :

The jqXHR.success(), jqXHR.error(), and jqXHR.complete()
callback methods introduced injQuery 1.5 are deprecated
as of jQuery 1.8. To prepare your code for their eventual 
removal, use jqXHR.done(), jqXHR.fail(), and jqXHR.always() instead.

Si vous voulez des gestionnaires globaux, vous pouvez utiliser :

.ajaxStart(), .ajaxStop(),
.ajaxComplete(), .ajaxError(),
.ajaxSuccess(), .ajaxSend()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X