1

Ich versuche Post eine Zeichenfolge auf dem Web-Service, aber ich erhalte diesen Fehler (Google Chrome Extension Project):Jquery AJAX Post: 500 (Interner Serverfehler)?

jquery-2.1.1.min.js: 4 POST http://localhost:49242/Service.asmx/test 500 (Internal Server Error)

Hier ist meine ajax-Code:

var data = {}; 
data.param1 = words[0]; 

$.ajax({ 
    data: JSON.stringify({ 'data': data.param1 }), 
    dataType: 'application/json', 
    url: 'http://localhost:49242/Service.asmx/test', 
    type: 'POST', 
    contentType: 'application/json; charset=utf-8', 
    success: function (result) { 
     alert(result); 
    }, 
    failure: function (errMsg) { 
     alert(errMsg); 
    } 
}); 

Mein Service:

[WebMethod] 

[System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)] 
public string test(string param1) { 
    return param1; 
} 

Ich arbeite an diesem Problem etwa 3 Tage. Kannst du mir helfen ?

Übrigens, ich habe eine Frage. Ich gebe JSON-Variable zu Service mit AJAX (wie Sie sehen), aber Service-Rückgabe XML-Wert. Gibt es ein Problem oder [System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)] dieses Codeblock Problem zu lösen?

+0

schreiben 'json' in dataType – uzaif

+0

Danke, aber es hat nicht funktioniert. – user5535577

+0

hast du überprüft, dass deine URL funktioniert, auf welche Daten du schreibst? – uzaif

Antwort

2

Ihr Fehler kommt von Ihrem Datenparameter. Stringify data Objekt statt { 'data': data.param1 }:

var data = {}; 
data.param1 = words[0]; 

$.ajax({ 
    data: JSON.stringify(data), 
    dataType: 'application/json', 
    url: 'http://localhost:49242/Service.asmx/test', 
    type: 'POST', 
    contentType: 'application/json; charset=utf-8', 
    success: function (result) { 
     alert(result); 
    }, 
    failure: function (errMsg) { 
     alert(errMsg); 
    } 
}); 

Ihre stringifyed Daten in {"param1":"Words"} führen wird, dann sollte Ihr Service Lage sein, den param1 Parameter zu binden.

+0

Vielen Dank, es hat funktioniert. Aber ich habe Service "blah" String geschrieben, aber Service [Objekt Objekt] zurückgegeben. Warum? – user5535577

+0

Ihre Begrüßung. Welchen Browser hast du benutzt? –

+0

Chrome und ich kümmerten uns um Problem. Das hat funktioniert: var data = response.hasOwnProperty ("d")? Antwort.d: Antwort; Warnung (Daten); – user5535577

0

Ich war mit dieser Art von Fehler auf AJAX Post Antwort konfrontiert. Ich verbrachte zu viel Zeit hinter diesem Problem und schließlich fing ich es.

Es wirft einen 500 internen Fehler, weil die AJAX-Antwort eine Menge Inhalt vom Server hat, so dass es eine Zeitüberschreitung der Ausführung zurückgibt.

Also habe ich gerade die Zeile unten hinzugefügt und es funktioniert gut.

Page.Server.ScriptTimeout = 300; 
+0

Wo haben Sie diese Zeile hinzugefügt? [@Belle] (https://Stackoverflow.com/users/8019185/belle) hatte eine Frage ([habe versucht, deinen Beitrag als Antwort zu bearbeiten] (https://stackoverflow.com/review/suggested-edits/17723040)) –

+0

Ich rufe Ajax-Funktion mit der URL der Seite "emailapi.aspx". In dieser Situation bekomme ich diesen Fehler, aber wenn ich ** Page.Server.ScriptTimeout = 300; ** in emailapi.aspx hinzugefügt habe. es funktioniert gut. – Jitendra

Verwandte Themen