Quelle der Fehlermeldung der Funktion jQuery $.ajax()

Lesezeit: 3 Minuten

Benutzer-Avatar
Sarsnake

Im Fehlerfall lautet der Code etwa so:

error: function(msg)

wo kommt die msg komme aus?

BEARBEITEN:

Ich verwende diese Funktion ($ajax), um einen WEB SERVICE aufzurufen. Also, wenn jemand, der dies abgelehnt hat, mir erklären könnte, woher msg kommt, wäre das großartig! Muss ich es im Webdienst einstellen? Wenn das so ist, wie? Bitte kopieren Sie die Definitionen nicht und fügen Sie sie nicht ein.

  • warum wird das runtergevotet?

    – Jason

    21. Januar 2010 um 22:27 Uhr

  • Der Parameter msg ist das XMLHttpRequest-Objekt, das jquery verwendet, um die Anfrage zu stellen. Es spielt keine Rolle, ob es aufgerufen wird Nachricht oder xhr oder was auch immer, das ist der erste (oder einzige) Parameter. In dem Beispiel, wo Sie das bekommen haben, hätten sie es verwenden sollen xhr oder sonst was Nachricht, was verwirrend ist. Ich schlage vor, Sie ändern es. Und ja, ich weiß nicht, warum die Abwertungen. Das ist eine gute Frage. Ich werde hier eine Ablehnung ausgleichen. . .

    – Patrick Kärcher

    22. Januar 2010 um 0:39 Uhr

Benutzer-Avatar
Patrick Kärcher

Aus der jquery-Dokumentation:

error(XMLHttpRequest, textStatus, errorThrown) Function

Eine Funktion, die aufgerufen wird, wenn die Anforderung fehlschlägt. Der Funktion werden drei Argumente übergeben:
– Das XMLHttpRequest-Objekt,
– eine Zeichenfolge, die die Art des aufgetretenen Fehlers beschreibt, und
– ein optionales Ausnahmeobjekt, falls eines aufgetreten ist.
Mögliche Werte für das zweite Argument (neben null) sind „timeout“, „error“, „notmodified“ und „parsererror“. Dies ist ein Ajax-Ereignis.

Wenn Sie nur einen Parameter angeben, ist dies der xmlHttpRequestObject. Daraus kann man sich gut informieren. Leider, In den meisten Dokumentationen da draußen haben Sie dies nicht richtig eingerichtet. Eine gute Standardvorlage ist:

error:function (xhRequest, errorText, thrownError)

Einige gute Informationen, die Sie von xhRequest erhalten können, sind:

  • .status : 404: „nicht gefunden“, 500: „Serverfehler“. Das kann manchmal eine große Hilfe sein.
  • .responseText sind Informationen vom Server, die im Fehlerfall oft nutzlos sind, aber manchmal hilfreich sein können.

Der zweite Wert, ein String, ist manchmal hilfreich. Ah, ich denke, die möglichen Werte werden in der Dokumentation erwähnt.

Der 3. Parameter war, wann immer ich ihn überprüft habe, immer undefiniert. Ich glaube nicht, dass es jemals nützlich ist.

Benutzer-Avatar
Wladimir Buskin

Ich denke, der 3. Parameter errorThrown in der Fehler-Callback-Funktion

 error(XMLHttpRequest, textStatus, errorThrown)

ist genau die Textfehlermeldung vom Server zu senden.

Wenn Sie also auf einem Server Folgendes festlegen:

 Response.Status = 403;
 Response.StatusDescription = "Password is not correct";

Auf einem Client erhalten Sie:

 textStatus => "error",
 errorThrown => "Password is not correct"

Der Serverteil für Asp.net MVC wird sein:

 return new HttpStatusCodeResult(403, "Password is not correct");

Benutzer-Avatar
sdmüller

Die Nachricht ist eine Rückgabe von der eigentlichen serverseitigen Funktion, die Sie in Ihrem Ajax-Aufruf abfragen.

Auf diese Weise können Sie den Fehler oder andere Informationen darüber erhalten, ob der serverseitige Code das getan hat, was er tun sollte.

Sagen Sie, wenn Sie eine Zeichenfolge “Erfolg” zurückgeben

msg.val() wird gleich “Erfolg”

Ich hoffe, das hilft

Eigentlich ist der richtige Weg:

error: function(req, status, error) {
}

Von der jQuery-API:

Eine Funktion, die aufgerufen wird, wenn die Anforderung fehlschlägt. Der Funktion werden drei Argumente übergeben: Das XMLHttpRequest-Objekt, eine Zeichenfolge, die den Typ des aufgetretenen Fehlers beschreibt, und ein optionales Ausnahmeobjekt, falls eines aufgetreten ist. Mögliche Werte für das zweite Argument (neben null) sind „timeout“, „error“, „notmodified“ und „parsererror“. Dies ist ein Ajax-Ereignis.

1046580cookie-checkQuelle der Fehlermeldung der Funktion jQuery $.ajax()

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

Privacy policy