2010-02-05 13 views
18

Ho il seguente pezzo di codice che sto solo cercando fuori eseguendo in FirebugJQuery Come scoprire qual è l'errore ajax?

$.ajax({ 
    type:"POST", 
    url:"http://mpdomain/WebService.asmx/Operation", 
    data: "{'parameter1': '44906'}", 
    contentType: "application/json;charset=utf-8", 
    dataType: "json", 
    success: function(data) { alert("succsess") }, 
    error: function(e, ts, et) { alert(ts) } 
}) 

In teoria dovrebbe funzionare. Tuttavia, il gestore degli errori viene attivato e ts viene semplicemente impostato su "errore". Come faccio a ottenere maggiori dettagli su cosa è andato storto?

+2

Aprire il debugger Firebug o IE8 e inserire un punto di interruzione su 'alert (ts)'. Esamina i parametri 'e, ts, et' per scoprire dove sono archiviate le informazioni che desideri. –

risposta

30
$.ajax({ 
    type:"POST", 
    url:"http://mpdomain/WebService.asmx/Operation", 
    data: "{'parameter1': '44906'}", 
    contentType: "application/json;charset=utf-8", 
    dataType: "json", 
    success: function(data) { alert("succsess") }, 
    error: function(ts) { alert(ts.responseText) } 
}) 
+5

hmm - è vuoto. Qualche idea? –

+1

hmm ... prova responseStatus – ozsenegal

+3

perché gli avvisi, non vanno bene a nessuno. usa un debugger; istruzione o console.dir l'oggetto. Tutto tranne avvisi! – redsquare

4

Il messaggio di errore fornito da jQuery non è molto descrittivo. Può essere "timeout", "error", "notmodified" o "parsererror". http://api.jquery.com/jQuery.ajax/ quindi quello che si può concludere è che non si tratta di un errore di timeout, non modificato o di analisi che si sta ottenendo.

Assicurati che in Firebug la richiesta sia impostata sull'indirizzo corretto e che vengano impostati i dati corretti. Puoi anche visualizzare la risposta in modo che se hai anche accesso al codice del server un modo rapido e sporco è solo quello di echeggiare ciò che sta succedendo sul lato server e visualizzare la risposta con Firebug.

Inoltre, non sono sicuro che si tratti di un problema, ma prova a impostare i dati su {parametro1: 44906} (in pratica rimuovi le virgolette per far passare un oggetto e non una stringa).