2009-06-21 17 views
10

C'è un errore non definito dovuto alla richiesta Ajax in jQuery. Ma funziona localmente. Errore che fa riferimento a jquery1.3.2.js @ 3633 lineajQuery XMLHttpRequest error

xhr.send(s.data); 

Il mio codice è:

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

avvisi codice mostra me (0, 'undefined');

Cosa sto facendo male?

risposta

23

Questo potrebbe accadere se la richiesta di ajax viene annullata prima del completamento. jQuery genera l'evento di errore quando l'utente si allontana dalla pagina aggiornando, facendo clic su un collegamento o modificando l'URL nel browser. È possibile rilevare questi tipi di errori implementando un gestore di errori per la chiamata ajax e ispezionando l'oggetto 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

Impossibile dirti in anticipo, ma probabilmente è qualcosa sul lato server in index.php. Il modo migliore per dire è guardare la risposta grezza usando un debugger http. L'estensione firefox Firebug ha una buona soluzione e fidder2 è un'opzione robusta.

+0

L'ho provato con firebug. C'è una risposta errata, ma il suo stato è 200 - OK. La richiesta Ajax restituisce ajaxError senza spiegazione. –

+0

Ho trovato la stessa descrizione del problema a http://www.mail-archive.com/[email protected]/msg65106.html Ma ancora nessuna soluzione. –