2009-06-21 6 views
10

Il existe une erreur non définie due à la requête Ajax dans jQuery. Mais cela fonctionne localement. Erreur référencement dans jquery1.3.2.js @ 3633 ligneErreur jQuery XMLHttpRequest

xhr.send(s.data); 

Mon code est:

$.ajax({ 
    type: "POST", 
    url: 'index.php', 
    data: "action=showpath&type=images&path=&default=1", 
    cache: false, 
    dataType: "html", 
    success: function(data){ 
     $('#addr').html(data); 
    }, 
    error:function (xhr, ajaxOptions, thrownError){ 
      alert(xhr.status); 
      alert(thrownError); 
    }  
}); 

alertes dans le code me montre (0, 'undefined');

Qu'est-ce que je fais mal?

Répondre

23

Cela peut se produire si votre requête ajax est annulée avant la fin. jQuery déclenche l'événement d'erreur lorsque l'utilisateur quitte la page en rafraichissant, en cliquant sur un lien ou en modifiant l'URL dans le navigateur. Vous pouvez détecter ces types d'erreurs en implémentant un gestionnaire d'erreurs pour l'appel ajax, et en inspectant l'objet xmlHttpRequest:

$.ajax({ 
    /* ajax options omitted */ 
    error: function (xmlHttpRequest, textStatus, errorThrown) { 
     if(xmlHttpRequest.readyState == 0 || xmlHttpRequest.status == 0) 
       return; // it's not really an error 
     else 
       // Do normal error handling 
}); 
0

Impossible de vous le dire, mais c'est probablement quelque chose du côté serveur dans index.php. La meilleure façon de dire est de regarder la réponse brute en utilisant un débogueur http. L'extension Firebug firefox a un très bon, et fidder2 est une option costaud.

+0

Je l'ai testé avec firebug. Il y a une réponse erronée, mais son propre statut est 200 - OK. La requête Ajax renvoie ajaxError sans explication. –

+0

J'ai trouvé la même description de problème à http://www.mail-archive.com/[email protected]/msg65106.html Mais toujours aucune solution. –