930 Stimmen

Ajax-Anfrage gibt 200 OK zurück, aber ein Fehlerereignis wird anstelle eines Erfolgs ausgelöst

Ich habe eine Ajax-Anfrage auf meiner Website implementiert, und ich rufe den Endpunkt von einer Webseite aus auf. Er gibt immer zurück 200 OK aber jQuery führt das Fehlerereignis aus.
Ich habe viele Dinge ausprobiert, aber ich konnte das Problem nicht herausfinden. Ich füge meinen Code unten hinzu:

jQuery-Code

var row = "1";
var json = "{'TwitterId':'" + row + "'}";
$.ajax({
    type: 'POST',
    url: 'Jqueryoperation.aspx?Operation=DeleteRow',
    contentType: 'application/json; charset=utf-8',
    data: json,
    dataType: 'json',
    cache: false,
    success: AjaxSucceeded,
    error: AjaxFailed
});
function AjaxSucceeded(result) {
    alert("hello");
    alert(result.d);
}
function AjaxFailed(result) {
    alert("hello1");
    alert(result.status + ' ' + result.statusText);
}

C#-Code für JqueryOpeartion.aspx

protected void Page_Load(object sender, EventArgs e) {
    test();
}
private void test() {
    Response.Write("<script language='javascript'>alert('Record Deleted');</script>");
}

Ich brauche die ("Record deleted") Zeichenfolge nach erfolgreicher Löschung. Ich kann den Inhalt zwar löschen, aber ich erhalte diese Meldung nicht. Ist das richtig oder mache ich etwas falsch? Was ist der richtige Weg, um dieses Problem zu lösen?

3 Stimmen

Können Sie die Ausgabe von JqueryOperation.aspx durch einen JSON-Validator laufen und sehen, ob es gültig JSON

2 Stimmen

Wie jsonlint.de . Sie müssen auch die Parameter überprüfen, die Sie senden. Derzeit haben Sie keinen Parameternamen angegeben. Wenn der Parameter TwitterId dann müssen Sie ein Objekt an data und nicht eine Zeichenkette: data: {TwitterId: row} .

10 Stimmen

Gibt die Seite Jqueryoperation.aspx (gültiges) JSON zurück?

2voto

Paul Punkte 43

Eine weitere Sache, die mich durcheinander gebracht hat, war die Verwendung von localhost anstelle von 127.0.0.1 oder andersherum. Offenbar kann JavaScript keine Anfragen von einer zur anderen verarbeiten.

2voto

Fabian von Ellerts Punkte 3997

Wenn Sie immer JSON vom Server zurückgeben (keine leeren Antworten), dataType: 'json' sollte funktionieren und contentType ist nicht erforderlich. Stellen Sie jedoch sicher, dass die JSON-Ausgabe...

jQuery AJAX wirft einen 'parseerror' bei gültigem, aber nicht serialisiertem JSON!

1voto

Mehdi Izcool Punkte 19

Ich hatte das gleiche Problem. Es lag daran, dass meine JSON-Antwort einige Sonderzeichen enthält und die Serverdatei nicht mit UTF-8 kodiert war, so dass der Ajax-Aufruf davon ausging, dass es sich nicht um eine gültige JSON-Antwort handelt.

-1voto

Kashif Faraz Punkte 301

Ihr Skript verlangt eine Rückgabe im Datentyp JSON.

Versuchen Sie dies:

private string test() {
  JavaScriptSerializer js = new JavaScriptSerializer();
 return js.Serialize("hello world");
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X