Gewusst wie: Debuggen von jQuery AJAX
Ich bin mit Chrome Debuggen von meine websites. Aber irgendwann habe ich mit kommen Fehler wie diese:
Fehler
Uncaught TypeError: Cannot set property 'display' of undefined
Stack-Trace
f.extend.ajax
ClassLoader.performLoadWave
So, ich weiß, dass es etwas in meinem Ajax-Aufruf, wahrscheinlich in meinem Erfolg Funktion. Aber, mein Erfolg Funktion ruft eine Menge Dinge.
Ich bin nicht wirklich auf der Suche nach jemanden, der mir hilft meine debug-code, sondern nur zu Fragen, wie konnte ich Debuggen. Ich benutze eine Menge von Konsole.log(); aber Sie sind nicht wirklich hilfreich, wie kann ich richtig Fehler zu finden, wie diese?
BEARBEITEN
Hinzufügen zu meiner Frage, in diesem Beispiel die Fehler in eine Datei, die geladen wird, indem Sie mein AJAX-call, da der Datentyp von 'Skript', aber wie kann ich wissen, ohne zu Graben, bis ein paar Stunden?
Code
Für jeden, der kümmert sich um meinen code, hier ist es:
$.ajax({
url: filePath,
async: false,
cache: !Settings.debugging,
dataType: 'script',
error: function(httpRequest, message, errorThrown){
if(errorThrown == 'Not Found')
{
throw 'Include cannot be found.';
}
else
{
throw errorThrown + ': ' + (message == 'parsererror' ? 'This doesn\'t look like JavaScript!' : message);
}
},
success: function(){
$.each(newNeedsLoading, function(index, element){
if(element !== undefined)
{
var className = element.className;
if(window[className] && window[className]['included'])
{
window[className]['included']();
}
className = 'Plugin_' + element.className;
if(window[className] && window[className]['included'])
{
window[className]['included']();
}
className = 'Plugin_Administration_' + element.className;
if(window[className] && window[className]['included'])
{
window[className]['included']();
}
if(element.completed)
{
element.completed();
}
}
});
ClassLoader.isLoading = false;
}
});
- möglich, Duplikat der Debugging-Skripte via jQuery getScript-Funktion
- Finden Sie die doppelten, die ich gerade Hinzugefügt crossDomain: true " in meine $.ajax-Aufruf Debuggen kann jetzt richtig.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach einigen Recherchen war diese Frage ziemlich ein Duplikat dieses:
Debugging-Skripte via jQuery getScript-Funktion
Chrome hat auch eine option zum protokollieren der http-Anfragen und den Netzwerk-tab der developer-tools ist ziemlich nützlich.
Haben Sie versucht, mit firebug? Sie können die einzelnen AJAX-Anforderungen, einschließlich der Parameter, die Sie senden und die Antwort vom server zurückgegeben werden über die Registerkarte "CONSOLE".
http://getfirebug.com/releases/lite/chrome/
In der Registerkarte "console" sollten Sie mit der rechten Maustaste und wählen Sie anmelden XMLHttpRequests. Dann können Sie die "Netzwerk" - Reiter an, um die einzelnen Elemente geladen, die pro Anfrage. Die "Header" - Bereich zeigt Ihre Parameter. Die "Vorschau" - panel zeigt die Vorschau. Die "Antwort" - panel wird Ihnen zeigen, die Fehler oder die Erfolge der Rückkehr von Ihrem server mit, welche Daten Sie zurückbringen.
Könnten Sie einen Haltepunkt in Ihrem javascript
success
Funktion (odererror
oder wo auch immer).Sehen Chrome Developer Tools: Haltepunkte für die Informationen und die in-browser-tutorials. In Ihrem Fall Besondere Aufmerksamkeit zu widmen,Haltepunkte auf XHR.
Wenn Sie den Haltepunkt erreicht, können Sie den Wert einer beliebigen Variablen in scope. Sie können auch die javascript-Konsole eingeben, beliebigen javascript-Code und führt in den aktuellen Bereich.
Als @cockroachbill sagte, Sie können auch anzeigen der Registerkarte "Netzwerk" zu sehen, der ganze Verkehr, inklusive XHR (XMLHttpRequest) und was es zurückgegeben. Vor allem mag ich die Registerkarte "Vorschau".
Debuggen