Étrange AJAX bug avec IE 11
Je suis actuellement en train de travailler sur une base purement HTML et JavaScript web app qui utilise la SCRO pour consommer un service web distant mais actuellement avoir des problèmes avec IE 11 faire une requête GET. Le plus drôle, c'est que nous avons, il fonctionne très bien dans IE8/9/10 tout simplement pas 11.
Le problème est que IE 11 semble délai d'attente et de ne pas attendre une réponse du serveur. L'appel ajax est tout simplement:
$.ajax(url, {
dataType: 'json',
complete: complete,
type: 'GET',
global: true,
success: success,
crossDomain: true,
xhrFields: {
withCredentials: true
}
});
Dans l'onglet réseau et à l'aide de Fiddler je peux voir IE même jamais envoie la demande.
Quelqu'un a une idée s'il vous plaît?
MODIFIER: j'ai oublié de mentionner, j'ai déjà essayé de cache: false. J'ai aussi trouvé quelque chose de très étrange dans le sens que si je le commutateur de mode de document dans les outils de dev à partir d'un Bord à 9 puis de nouveau l'appel fonctionne à chaque fois, même après que j'ai effacé IE et de le redémarrer, si le cache est vrai ou faux. Très bizarre. :\
- Pouvez-vous voir si IE11 a des problèmes avec la préparation du vol des OPTIONS de demande? Pouvez-vous le journal de la demande d'OPTIONS sur le serveur?
- débogage en cochant l'option d'ajax vous donner des question
- Je ne sais pas si c'est toujours un problème, mais avez-vous vérifié votre IE les zones de sécurité pour permettre la SCRO?
- Désolé, j'aurais dû en parler, j'ai déjà essayé la mise en cache:false. IE n'a pas de problèmes avec les OPTIONS de demande.
- Je vais avoir le même problème que mentionné dans votre montage. Les réponses ont aidé?
- Je ne peux pas croire que j'ai oublié d'accepter une solution, merci de me le rappeler. 🙂
- je suis avec windows 7 , c'est à dire 11 , avec un serveur web dispatcher. Certains de mes appels ajax ne va même pas à la fin d'un d de ne pas voir la demande xhr dans le navigateur de l'onglet réseau. Toute aide.
- Bizarrement, l'ajout d'un unique horodatage de l'URL est la seule façon que j'ai réussi à résoudre ce problème. (Pour les requêtes GET)
Vous devez vous connecter pour publier un commentaire.
IE est célèbre pour la mise en cache. Assurez-vous que vous n'obtenez pas une réponse en cache. Vous pouvez définir le
cache
la valeur de la propriété àfalse
ou ajouter un unique horodatage à l'url de sorte que ce ne sera pas une réponse en cache. Vous pouvez utiliser le$.now()
méthode pour obtenir un unique timestamp.Paramètre de la propriété du cache
L'ajout d'un unique horodatage URL
La
$.now()
méthode est un raccourci pour le nombre retourné par l'expression(new Date).getTime()
$.now()
, sinon l'url de casser.je ne suis pas sûr, c'est peut-être la mise en cache, tentez de définir la propriété "cache: false,"
sinon, vous pouvez aussi essayer d'ajouter une date à la fin de votre url, de sorte que vous avez à chaque fois une adresse différente et IE ne cache
Utilise cette dans votre balise head
Si vous exécutez local, essayer de changer crossDomain à false. J'ai passé un peu de temps bloqué sur cette. Chrome a manipulé le crossDomain, mais sous IE, si vous n'êtes pas à l'aide de crossDomain et vous l'avez définie à true, silencieusement échouer.
Je sais que ce fil est vieux, mais juste comme un supplément de vérifier pour ceux qui rencontre ce problème, vérifiez que la Zone Sites de Confiance des paramètres de permettre l'accès pour l'ensemble des domaines. Le premier paramètre dans l'onglet "Divers" est le réglage que vous souhaitez.
Ensemble "Accès aux sources de données pour l'ensemble des domaines" à "Activer".