Je travaille sur une application qui fait des appels ajax et j'ai rencontré un comportement assez particulier parfois quand un appel ajax est déclenché il se duplique et le second se termine mais je ne reçois pas la réponse en arrière et l'original continue à charger pour toujours ceci est fixé quand un appel d'ajax est renvoyé ou quand je frappe l'actualisation.jquery réponse d'appel ajax ne retourne jamais
Le problème est que je ne peux pas reproduire ce comportement car il se produit de manière aléatoire. La plupart du temps quand l'onglet reste ouvert et que je suis sur un autre onglet ou programme.
La seule chose que j'ai remarqué en utilisant firebug est qu'il semble y avoir quelque chose de mal avec les en-têtes de réponse.
Par rapport à un appel réussi, ils sont dans un ordre différent et certaines informations manquent complètement. Le Content-Type
a toujours plus de types que text/html
que je définis dans mon $.ajaxSetup
.
$.ajaxSetup({
dataType:'html',
cache:false,
type:'POST',
timeout:15000,
error:function() {
alert('Action aborted please try again');
},
complete:function(XMLHttpRequest,textStatus){
//console.log('XMLHttpRequest.readyState : '+XMLHttpRequest.readyState+'\nXMLHttpRequest.statusText : '+XMLHttpRequest.statusText+'\nXMLHttpRequest.status : '+XMLHttpRequest.status+'\ntextStatus : '+textStatus);
}
});
et un exemple de mes appels ajax:
var dataString = 'value='+value+'&value1='+value1+'&value2='+value2;
$.ajax({
url:'file.php',
data:dataString,
success:function(resp){
alert(resp);
}
})
ce comportement se passait beaucoup plus souvent avant ajouté un dataType
et aussi il se passe plus souvent vus localement sur une machine winXP SP3 en utilisant xampp et je pense à la fois firefox et IE.
J'ai testé dans un serveur exécutant Windows Server 2008 et Apache et php standalones pas xampp qui est et se passe encore moins. Formulaire mon PC à la maison il ne se passe presque jamais le test ci-dessus était dans mon bureau pc.
Est-ce que quelqu'un a rencontré un comportement similaire ou peut-être y at-il un moyen de coder différemment mes appels ajax? Je voudrais éviter d'utiliser un plugin et un long sondage semble être un peu lourd sur le serveur Apache.
c'est comme la demande initiale ne se termine jamais, mais plutôt im obtenir une réponse qui n'a jamais été réellement demandé – alex