jQuery ajax ne fonctionne que dans IE lorsque le débogueur IE est ouvert

J’ai fait face à un problème étrange avec IE (11). J’ai un code jQuery simple:

$("#my-radio").click(function () { $.ajax({ url: "/my-url", }).error(function(jqXHR, textStatus, errorThrown) { $("#error-summary").text(errorThrown); }); }); 

Le fait est que ce code fonctionne parfaitement dans tous les navigateurs sauf IE (dans mon cas, sauf IE 11, je n’ai pas encore testé les versions précédentes) MAIS, lorsque j’ouvre IE, le débogueur JavaScript intégré permet de voir ce qui ne va pas – tout commence à fonctionner correctement bien IE lance un appel ajax à l’action du contrôleur, le point d’arrêt du contrôleur est touché. L’action ne renvoie rien (c’est du type void ), il suffit de compter quelques éléments. J’ai déjà essayé la solution de plugin fournie dans ce fil de discussion, mais ce n’était pas utile.

MISES À JOUR:

Pour démontrer le problème, j’ai publié une application MVC simple ici . Lorsque vous cliquez sur l’image, le navigateur fait une demande en ajax pour cette action:

 public ssortingng Hello() { ssortingng ip = Request.ServerVariables["REMOTE_ADDR"]; ssortingng agent = Request.UserAgent; var request = new Request { IP = ip, Time = DateTime.UtcNow, UserAgent = agent }; _requestsRepository.Add(request); int byIp = _requestsRepository.GetTotalRequestsCountByUser(ip); int total = _requestsRepository.TotalRequests; ssortingng message = ssortingng.Format("Hello, {0}. This is your {1}th request and {2}th request in total.", ip, byIp, total); return message; } 

avec ce code jQuery:

 $(document).ready(function () { $("#click-me").click(function () { $.ajax({ url: "/services/hello", }) .success(function (data) { alert(data); }) .error(function (jqXHR, textStatus, errorThrown) { $("#error-summary").text(errorThrown); }); }); }); 

Comme vous pouvez le constater, l’action renvoie une chaîne simple qui est alertée en cas de succès. Vous pouvez essayer cette page dans IE. Vous remarquerez que le nombre de demandes n’augmente pas, car AUCUNE demande n’est réellement envoyée, mais le gestionnaire d’événements de success est appelé et le message est alerté (il s’agit probablement d’un ancien message mis en cache après une éventuelle demande réussie, je ne suis pas sûr ). Dans tout autre navigateur, le nombre de demandes augmentera, car elles sont envoyées chaque fois que vous cliquez sur l’image. Si vous activez le débogueur IE, les demandes seront également envoyées. Je suggère que ceci est une sorte de problème lié au cache IE.

Il semble que vous obteniez peut-être des réponses en cache. L’option Toujours actualiser à partir du serveur peut être activée sur les outils de développement, ce qui vous oblige à obtenir une nouvelle réponse uniquement à l’ouverture des outils.

Essayez d’append l’option de cache à l’object options jQuery AJAX et définissez sa valeur sur false .