2009-06-21 10 views
10

Występuje niezdefiniowany błąd z powodu żądania Ajax w jQuery. Ale działa lokalnie. Błąd przedstawieniu w jquery1.3.2.js @ 3633 liniijQuery Błąd XMLHttpRequest

xhr.send(s.data); 

Mój kod to:

$.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); 
    }  
}); 

alerty w kodzie pokazuje mi (0, 'niezdefiniowane');

Co robię źle?

Odpowiedz

23

Może się tak zdarzyć, jeśli prośba o ajax zostanie anulowana przed zakończeniem. jQuery zgłasza zdarzenie błędu, gdy użytkownik odejdzie od strony, odświeżając, klikając łącze lub zmieniając adres URL w przeglądarce. Tego typu błędy można wykryć, implementując procedurę obsługi błędów dla wywołania ajax i sprawdzając obiekt 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

Nie można powiedzieć od ciebie, ale prawdopodobnie jest to coś po stronie serwera w index.php. Najlepszym sposobem, aby powiedzieć, jest spojrzenie na surową odpowiedź za pomocą debugera http. Rozszerzenie firefox Firebug ma całkiem niezłą, a fidder2 jest opcją.

+0

Testowałem go z firebugiem. Występuje błędna odpowiedź, ale jej własny status to 200 - OK. Żądanie Ajax zwraca ajaxError bez wyjaśnienia. –

+0

Znalazłem ten sam opis problemu pod adresem http://www.mail-archive.com/[email protected]/msg65106.html Ale wciąż nie ma rozwiązania. –

Powiązane problemy