Heim >Web-Frontend >js-Tutorial >Warum gibt meine jQuery-Ajax-Anfrage 200 OK zurück, löst aber das Fehlerereignis aus?

Warum gibt meine jQuery-Ajax-Anfrage 200 OK zurück, löst aber das Fehlerereignis aus?

Linda Hamilton
Linda HamiltonOriginal
2024-11-27 18:11:13796Durchsuche

Why Does My jQuery Ajax Request Return 200 OK But Trigger the Error Event?

jQuery Ajax-Anfrage gibt Erfolg zurück (200 OK), löst aber ein Fehlerereignis aus

Ihre jQuery Ajax-Anfrage gibt immer 200 OK zurück, was auf einen Erfolg hinweist Antwort. Allerdings führt jQuery immer noch das Fehlerereignis anstelle des Erfolgsereignisses aus.

Das Problem:

Bei Verwendung von jQuerys $.ajax, wenn der dataType-Parameter auf gesetzt ist Wenn Sie „json“ (wie in Ihrem Code) verwenden, wird erwartet, dass die Antwort vom Server gültiges JSON ist. In Ihrem Fall ist die Serverantwort jedoch HTML, also kein gültiges JSON. Dies führt dazu, dass jQuery einen Analysefehler auslöst und das Fehlerereignis auslöst.

Lösung 1: DataType entfernen: 'json'

Eine Lösung besteht darin, den dataType-Parameter aus zu entfernen Ihre Ajax-Anfrage. Dadurch kann jQuery die Antwort als Klartext interpretieren, der den HTML-Code enthält, den Sie von Ihrem Server senden.

$.ajax({
    type: 'POST',
    url: 'Jqueryoperation.aspx?Operation=DeleteRow',
    contentType: 'application/json; charset=utf-8',
    data: json,
    cache: false,
    success: AjaxSucceeded,
    error: AjaxFailed
});

Lösung 2: JSON vom Server zurückgeben

Alternativ können Sie Ihren serverseitigen C#-Code so ändern, dass er JSON anstelle von HTML zurückgibt. Dadurch wird sichergestellt, dass jQuery die Antwort korrekt analysieren und das Erfolgsereignis ausführen kann.

private void test() {
    Response.ContentType = "application/json";
    Response.Write("{ \"message\": \"Record Deleted\" }");
}

Mit dieser Änderung erhält jQuery eine gültige JSON-Antwort und löst das Erfolgsereignis wie erwartet aus.

Das obige ist der detaillierte Inhalt vonWarum gibt meine jQuery-Ajax-Anfrage 200 OK zurück, löst aber das Fehlerereignis aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn