Je développe avec le framework .NET, en utilisant le côté client jQuery 1.4.2. Lors du développement dans la version 3.6 de Firefox, un des nombreux appels ajax que je fais sur la page se déclenche deux fois, le second retournera avec succès mais ne déclenchera pas le successeur de l'appel ajax et le premier jamais retourne quelque chose. Donc, fondamentalement, les données sont toutes envoyées au serveur et la réponse est envoyée mais rien ne se passe avec la réponse.firefox, jQuery appels ajax tirant deux fois et ne jamais déclencher des fonctions de succès ou d'erreur
Voici un exemple de l'appel que je fais. Il arrive à l'un des appels ajax, donc il n'y a pas un qui est à l'origine du problème:
$.ajax({
type:"POST",
contentType : "application/json; charset=utf-8",
data:"{}",
dataType:"json",
success:function(){
alert('success');
},
error:function(){
alert('error');
},
url:'/services.aspx/somemethod'
});
})
De Firebug, voici les en-têtes du premier appel qui Firebug montre que ne répond jamais complètement, ce qui signifie que je ne vois pas de code de réponse et que le gif du chargeur dans le firebug ne disparaît jamais.
Note: Dans Firebug il dit habituellement tête de réponse, mais pour le premier appel de cet espace est vide
Server ASP.NET Development Server/9.0.0.0
X-AspNet-Version 2.0.50727
Content-Type application/json; charset=utf-8
Connection Close
têtes de demande
Host mydomain.com
User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3)
Gecko/20100401Firefox/3.6.3 (.NET CLR 3.5.30729)
Accept application/json, text/javascript, */*
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Content-Type application/json; charset=utf-8
X-Requested-With XMLHttpRequest
Referer http://mydomain.com/mypage.aspx
Voici l'en-tête de la deuxième demande qui vient semble se terminer dans firebug (ie la réponse est 200):
Tête de réponse er
Server ASP.NET Development Server/9.0.0.0
X-AspNet-Version 2.0.50727
Content-Type application/json; charset=utf-8
Connection Close
têtes de demande
Host mydomain.com
User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3)
Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729)
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Content-Type application/json; charset=utf-8
Referer http://mydomain.com/mypage.aspx
Pour résumer ma question, pourquoi deux demandes en cours et pourquoi aucun d'entre eux le déclenchement d'un gestionnaire succès ou erreur dans l'appel ajax.
J'ai vu cet article sur Firefox 3.5+ et les demandes Preflight
https://developer.mozilla.org/En/HTTP_access_control#Preflighted_requests
Dans l'article est dit que si un "POST" est faite avec tout autre type de contenu que « application/x-www -form-urlencoded, multipart/form-data, ou text/plain "que la requête est pré-flighted. Si c'est le cas, cela devrait arriver à tous mes appels.
Merci
Voyez-vous ce comportement avec d'autres navigateurs? –
non, seulement firefox –
Avez-vous essayé sans l'option 'dataType'? – eyelidlessness