919 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?

13voto

Suresh Vadlakonda Punkte 121

Ich habe dieses Problem mit einer aktualisierten jQuery-Bibliothek konfrontiert. Wenn die Dienstmethode nichts zurückgibt, bedeutet dies, dass der Rückgabetyp void .

Dann erwähnen Sie bitte in Ihrem Ajax-Aufruf dataType='text' .

Das wird das Problem lösen.

8voto

Bilel omrani Punkte 91

Sie müssen nur die dataType: 'json' aus Ihrer Kopfzeile, wenn Ihre implementierte Webdienstmethode ungültig ist.

In diesem Fall erwartet der Ajax-Aufruf keinen JSON-Rückgabedatentyp.

7voto

Inderjeet Punkte 1299

Siehe dies . Es ist auch ein ähnliches Problem. Arbeiten habe ich versucht.

Nicht entfernen dataType: 'JSON',

Hinweis: Ihre Antwortdaten sollten im json-Format vorliegen

5voto

Terry Lin Punkte 2226

Verwenden Sie den folgenden Code, um sicherzustellen, dass die Antwort im JSON-Format vorliegt (PHP-Version)...

header('Content-Type: application/json');
echo json_encode($return_vars);
exit;

4voto

Ich hatte das gleiche Problem. Mein Problem war, dass mein Controller einen Statuscode anstelle von JSON zurückgab. Stellen Sie sicher, dass Ihr Controller etwas wie zurückgibt:

public JsonResult ActionName(){
   // Your code
   return Json(new { });
}

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