JQuery Wie finde ich heraus, was der Ajax-Fehler ist?

Lesezeit: 2 Minuten

Ich habe den folgenden Code, den ich gerade ausprobiere, indem ich Firebug ausführe

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

Theoretisch sollte es funktionieren. Der Fehlerbehandler wird jedoch ausgelöst, und ts wird einfach auf “Fehler” gesetzt. Wie erhalte ich mehr Details darüber, was schief gelaufen ist?

  • Öffnen Sie den Firebug- oder IE8-Debugger und setzen Sie einen Haltepunkt auf Ihren alert(ts). Untersuchen Sie Ihre e, ts, et Parameter, um herauszufinden, wo die gewünschten Informationen gespeichert sind.

    – Jonathan Faust

    5. Februar 2010 um 19:16 Uhr

Benutzer-Avatar
ozsenegal

Um die Fehlermeldung von einem zu sehen AJAX Anfrage, können Sie so etwas tun:

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

Beachten Sie, dass Sie innerhalb der Fehlerfunktion die erhalten responseText.

  • hmm – es ist leer. Irgendwelche Ideen?

    – Georg Mauer

    5. Februar 2010 um 19:15 Uhr

  • Warum Warnungen, sie nützen niemandem. einen Debugger verwenden; -Anweisung oder console.dir das Objekt. Alles andere als Warnungen!

    – rotes Quadrat

    5. Februar 2010 um 19:32 Uhr

  • Warnungen, weil ich dies direkt aus der Firebug-Konsole heraus führe, nur um zu sehen, ob ich die Syntax richtig verstehe. Ich nehme an, console.debug würde genauso gut funktionieren

    – Georg Mauer

    5. Februar 2010 um 20:40 Uhr

Benutzer-Avatar
jhchen

Die Fehlermeldung, die jQuery Ihnen gibt, ist nicht sehr aussagekräftig. Es kann entweder „timeout“, „error“, „notmodified“ oder „parsererror“ sein. http://api.jquery.com/jQuery.ajax/ Sie können also schlussfolgern, dass es sich nicht um eine Zeitüberschreitung, keinen geänderten oder Analysefehler handelt, den Sie erhalten.

Stellen Sie sicher, dass in Firebug die Anfrage auf die richtige Adresse gesetzt ist und die richtigen Daten gesetzt werden. Sie können auch die Antwort anzeigen. Wenn Sie also auch Zugriff auf den Servercode haben, besteht eine schnelle und schmutzige Möglichkeit darin, einfach zu wiederholen, was auf der Serverseite vor sich geht, und die Antwort mit Firebug anzuzeigen.

Ich bin mir auch nicht sicher, ob dies ein Problem ist, aber versuchen Sie, die Daten auf {parameter1: 44906} zu setzen (entfernen Sie im Grunde die Anführungszeichen, damit Sie ein Objekt und keine Zeichenfolge übergeben).

1098550cookie-checkJQuery Wie finde ich heraus, was der Ajax-Fehler ist?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy