L'exemple de cet article décrit comment utiliser error pour déboguer les erreurs en ajax dans jquery. Partagez-le avec tout le monde pour votre référence. L'analyse spécifique est la suivante :
JQuery nous permet d'améliorer l'efficacité et de réduire de nombreux problèmes de compatibilité lors du développement d'applications Ajax. Dans notre projet Ajax, que devons-nous faire si nous rencontrons une erreur lors de l'obtention de données asynchrone. Nous pouvons capturer l'événement d'erreur pour obtenir l'erreur ? information.
L'usage courant d'ajax dans jquery est similaire à :
$(document).ready(function() { jQuery("#clearCac").click(function() { jQuery.ajax({ url: url, type: "post", data: { id: '0' }, dataType: "json", success: function(msg) { alert(msg); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); }, complete: function(XMLHttpRequest, textStatus) { this; // 调用本次AJAX请求时传递的options参数 } }); }); });
Lorsque l'appel asynchrone via ajax réussit, la fonction de réussite sera appelée. La syntaxe de la fonction de réussite est :
//请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态 function (data, textStatus) { // data could be xmlDoc, jsonObj, html, text, etc... this; // the options for this ajax request }
Lorsqu'une erreur se produit lors d'un appel ajax asynchrone, la fonction d'erreur sera appelée. La syntaxe de la fonction d'erreur est :
//(默 认: 自动判断 (xml 或 html)) 请求失败时调用时间。 //参数有以下三个:XMLHttpRequest 对象、错误信息、(可选)捕获的错误对象。 //如果发生了错误,错误信息(第二个参数)除了得到null之外, //还可能是"timeout", "error", "notmodified" 和 "parsererror"。 //textStatus: "timeout", "error", "notmodified" 和 "parsererror"。 error:function (XMLHttpRequest, textStatus, errorThrown) { }
Le premier paramètre XMLHttpRequest renvoyé par l'événement d'erreur :
XMLHttpRequest.readyState : la signification du code d'état
0 - La méthode send() (non initialisée) n'a pas encore été appelée
1 - (Chargement) La méthode send() a été appelée et la requête est en cours d'envoi
2 - (Chargement terminé) La méthode send() a été exécutée et tout le contenu de la réponse a été reçu
3 - (Interactif) Analyse du contenu de la réponse
4 - (Complet) L'analyse du contenu de la réponse est terminée et peut être appelée sur le client
Les erreurs d'envoi peuvent être causées par les deux problèmes suivants, ou par d'autres problèmes de procédure, qui nous obligent à être prudents.
1. data : "{}", si les données sont vides, vous devez passer "{}" sinon, les données renvoyées seront au format xml. Et invitez parsererror.
2. L'exception de parsererror est également liée au type d'en-tête. et encodage en-tête('Content-type: text/html; charset=utf8');
J'espère que cet article sera utile à la programmation jQuery de chacun.