2015-11-07 13 views
6

Jak mogę zobaczyć błąd runtime z otrzymanego skryptu jQuery AJAX?debugowanie skryptu ajax jquery z błędem runtime

Kodowanie aplikacji (wolnego oprogramowania) (monitor MELT, na GNU/Linux/Debian/x86-64), która osadza określony serwer WWW. Aby uzyskać szczegółowe informacje, patrz this question. Jestem w commit d624e22497de...

Używam Firefoksa 38 lub 42 na Linux/Debian/Gnu/x86-64 z najnowszym Firebug.

używam jQuery na $.ajax ze skryptu:

$.ajax 
({url: "/canvasedit", 
    method: "POST", 
    data: {"do_fillcanvas": true}, 
    dataType: "script", 
    success: ajaxcanvascript 
}); 

ajaxcanvascript jest poprawnie zwanym (i console.log nie jest wyświetlany), więc z punktu widzenia HTTP widzenia, żądanie AJAX udało (200 OK).

Jednak, gdy jest błąd wykonania w AJAX otrzymał skrypt do_fillcanvas, który jest generowanyskrypt podobny do czegoś podobnego:

 console.log('dofillcanvas canvedit.c:206 siz 1; this=', this, 
     ' momc_display_canvas=',momc_display_canvas); 
momc_display_canvas('09:26:39',[ 
    momc_top_entry(momc_item_ref('notice'), 
      momc_node(momc_item_ref('comment'), 
       [ 
       momc_string("some simple notice"), 
       momc_node(momc_item_ref('web_state'), 
         [ 
          momc_int(2)]), 
       momc_item_val('hashset'), momc_set([ 
        momc_item_ref('canvasedit'), 
        momc_item_ref('microedit'), momc_item_ref('the_agenda')]) 
       , 
       momc_tuple([ 
        momc_item_ref('web_session'), momc_nil_ref(), 
        momc_item_ref('the_system')]) 
       ]))]); 

console.log('dofillcanvas canvedit.c:239 this=', this); 
addupdatehtml('displayed <tt>Sat Nov 7 09:26:39 2015 MET</tt>'); 
console.log('dofillcanvas canvedit.c:252 done 09:26:39.11 this=', this); 

nie mam komunikat o błędzie w moim konsoli Firebug (lub nic łatwo widocznego z Firefoksa).

Typ błędu podczas wykonywania debugowania to np. jakąś niezdefiniowaną metodę nazwaną głęboko od momc_display_canvas (która używa jcanvas, której nie znam).

Tak, jak łatwo zobaczyć błąd runtime z otrzymanego skryptu jQuery AJAX?

Dodaję console.log wszędzie, ale to nie jest wygodne ...

+0

Sprawdź kartę sieciową konsolą znaleźć status prośba. –

+0

Status wynosi 200 OK. –

+0

Osobiście zacznę komentować linie jeden po drugim, aż błąd zniknie. – Taplar

Odpowiedz

1

Jeśli mam rację to jesteś z prośbą, aby obsłużyć błąd przy wywołaniu ajax ajax do kompletnego. JQuery ajax ma funkcję wywołania zwrotnego parametru dla błędu, możesz użyć tego wywołania zwrotnego, aby obsłużyć swój błąd.

$.ajax({ 
... 
error: function(error){ 
console.log(error); 
} 
... 
}) 

Jeśli chcesz obsługiwać całkowity błąd można wykorzystać spróbować owijanie wokół bloku catch całkowitej ajax call.Hope to pomoże Ci })

+0

Myślałem, że w '$ .ajax'' błąd' jest związany z błędami protokołu, a tutaj żądanie HTTP dla AJAX jest udane ... –

+0

@BasileStarynkevitch więc czy to rozwiązuje twój problem? –