Maison  >  Article  >  interface Web  >  La version jquery1.8 utilise ajax pour implémenter l'analyse des problèmes et les solutions pour les appels WeChat

La version jquery1.8 utilise ajax pour implémenter l'analyse des problèmes et les solutions pour les appels WeChat

亚连
亚连original
2018-05-24 14:52:282142parcourir

Cet article présente principalement l'analyse et les solutions aux problèmes qui surviennent lors de l'utilisation d'ajax pour implémenter les appels WeChat dans la version jquery 1.8. Les amis dans le besoin peuvent s'y référer

Laissez-moi d'abord vous raconter le contexte de l'article. problème : Récemment, je travaille sur un projet visant à développer une certaine fonction de WeChat. J'utilise le développement asp.net et jquery version 1.8.0.

Cliquez sur un bouton dans WeChat pour déclencher un événement, appelez ajax pour interagir avec le serveur et la fonction de rappel utilise une erreur.

Raison de l'analyse : La première chose à laquelle j'ai pensé était qu'il y avait un problème avec le type de données renvoyé, car la version jquery supérieure à 1.4 est très stricte sur le format json et doit s'y conformer avec {"target":true, "message":"success"} dans ce format. L'objet de réponse a été analysé à l'aide de la fonction JSON.stringify(). Les résultats étaient cohérents et la cause a été éliminée.

Puisque ajax utilise error, j'ai commencé à analyser les paramètres de la fonction d'erreur, qui incluent XMLHttpRequest, textStatus et errorThrown. J'ai trouvé que XMLHttpRequest.status est égal à 0 et XMLHttpRequest.readyState est égal à 0, indiquant qu'il existe un objet XMLHttpRequest dans le formulaire mais qu'il n'a pas été initialisé. Ensuite, j'ai commencé à étudier comment initialiser l'objet XMLHttpRequest.

Solution :

var xmlHttpRequest;
$(function(){
if(window.XMLHttpRequest){
xmlHttpRequest=new XMLHttpRequest();
}else{
xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttpRequest.open("GET","AjaxServlet",true);
});

Cela résoudra le problème décrit ci-dessus. Notez que l'accès au PC est généralement là. ne posera aucun problème avec Ajax car les navigateurs PC ont des objets XMLHttpRequest intégrés. Cependant, dans WeChat, si ce phénomène se produit, vous devrez peut-être le créer et l'initialiser manuellement.

ps : la version Android de WeChat est livrée avec la gestion des erreurs d'abandon du navigateur et du navigateur IE6 pour la requête ajax

Liez un événement de clic à l'élément de page pour déclencher la requête ajax, dans le navigateur intégré d'Android WeChat et IE6, la requête est souvent interrompue et le type d'erreur « abandonner » est renvoyé. Dans d'autres navigateurs, tout est normal.

En utilisant Fiddler2 et httpWatch pour surveiller les requêtes dans IE6, « abandonné » apparaît souvent, ce qui prend un week-end entier. . . . .

Plus de bêtises....

Solution : Ajouter onclick='return false;' à l'étiquette

C'est pour moi que je l'ai compilé tout le monde, j'espère que cela sera utile à tout le monde à l'avenir.

Articles connexes :

Améliorer l'expérience de demande de liste ajax basée sur l'historique h5

Parlez brièvement des objets de base AJAX

Explication détaillée des exemples de méthodes de transmission de données 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn