Heim >Web-Frontend >js-Tutorial >Warum gibt meine jQuery-Ajax-Anfrage 200 OK zurück, löst aber das Fehlerereignis aus?
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!