Utilisation des erreurs : 1. Utilisé lorsque le type de données renvoyé par l'arrière-plan est incohérent avec ce qui est écrit dans le frontend ; 2. Utilisé lorsque l'asynchrone demande une synchronisation et des problèmes asynchrones ; 3. Utilisé lorsque les données sont définies comme vides ; les paramètres transmis ne sont pas utilisés. Utilisez le format d'encodage pris en charge par ajax.
L'environnement d'exploitation de cet article : système windows7, version javascript1.8.5&&html5, ordinateur Dell G3.
Quand l'erreur est-elle utilisée en ajax ?
Erreur dataType (dataType est utilisé pour spécifier le type de paramètres renvoyés par l'arrière-plan)
Erreur de type : Le type dataType renvoyé par l'arrière-plan est incompatible avec ce qui est écrit dans le frontend. Passer à l'erreur.
Erreur de format : jquery1.4 a des exigences de format très strictes pour json, et les erreurs de format json passeront également à l'erreur.{"test":1} Faites attention au format
Parfois, lorsqu'il n'est pas nécessaire de renvoyer un valeur, lancez le bouton Format du modèle, le paramètre dataType : "json" est défini ; à ce moment, lorsque la valeur ajax est correcte, il y aura une situation particulière où une erreur sera signalée dans le statut de réussite du retour 200.
S'il n'est pas spécifié, jQuery effectuera automatiquement des jugements intelligents basés sur les informations MIME du package HTTP. Par exemple, le type XML MIME est reconnu comme XML. Dans la version 1.4, JSON générera un objet JavaScript et le script exécutera le script. Les données renvoyées par le serveur seront ensuite analysées en fonction de cette valeur et transmises à la fonction de rappel. Valeurs disponibles :
"xml" : Renvoie un document XML pouvant être traité avec jQuery.
"html" : renvoie les informations HTML en texte brut ; la balise de script incluse sera exécutée une fois insérée dans le dom.
"script" : renvoie le code JavaScript en texte brut. Les résultats ne sont pas automatiquement mis en cache. Sauf si le paramètre "cache" est défini. Remarque : lors de requêtes distantes (pas sous le même domaine), toutes les requêtes POST seront converties en requêtes GET. (Car la balise du script DOM sera utilisée pour le chargement)
"json" : renvoie les données JSON.
"jsonp" : format JSONP. Lors de l'appel d'une fonction au format JSONP, telle que "myurl?callback=?", jQuery remplacera automatiquement ? par le nom de fonction correct pour exécuter la fonction de rappel.
"text": renvoie une chaîne de texte brut
Synchronisation des requêtes asynchrones et problèmes asynchrones
async est par défaut true (requête asynchrone) Si vous souhaitez exécuter un autre Ajax après l'exécution d'un Ajax, vous besoin de async=false
Par exemple, vous utilisez une requête de publication pour passer une valeur en arrière-plan d'une autre page, mais votre ajax a déjà été exécuté dès le chargement de la page, et la réception de la valeur est terminée en arrière-plan . Pour le moment, les données ne peuvent pas être demandées. Vous pouvez donc envisager de modifier la requête ajax en essai synchrone.
les données doivent être écrites
Si les données sont vides, vous devez passer "{}" sinon, les données renvoyées seront au format xml. Et invite parsererror data : "{}"
L'exception de parsererror est également liée au type d'en-tête. et encoding header('Content-type: text/html; charset=utf8');
Les paramètres transmis
doivent être le format d'encodage pris en charge par ajax
Problème de chemin d'URL
Le chemin ne peut pas contenir de caractères chinois
Généralement, on peut juger de la cause de l'erreur en analysant certains paramètres de l'erreur :
XMLHttpRequest.readyState : Code d'état
0 - (non initialisé) La méthode send() n'a pas encore été appelé
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 - (Interaction) Le contenu de la réponse est en cours d'analyse
4 - (Terminé) L'analyse du contenu de la réponse est terminée et
XMLHttpRequest.status peut être appelé sur le client : Appelez le statut de la requête http
Il existe de nombreuses requêtes statuts. Si vous rencontrez des codes de statut d’erreur spécifiques, vous pouvez les interroger sur Baidu.
XMLHttpRequest.responseText : message d'erreur renvoyé
Si une erreur se produit, le message d'erreur (deuxième paramètre) peut être "timeout", "error", "notmodified" et "parsererror" en plus de null.
【Recommandation de didacticiel connexe : Tutoriel vidéo AJAX】
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!