我正在尝试将字符串发布到网络服务,但收到此错误(Google Chrome 扩展项目):
jquery-2.1.1.min.js:4 POST http://localhost:49242/Service.asmx/test 500 (Internal Server Error)
这是我的ajax代码:
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);
}
});
我的服务:
[WebMethod]
[System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]
public string test(string param1) {
return param1;
}
我花了大约 3 天的时间来解决这个问题。你能帮助我吗 ?
顺便问一下,我有一个问题。我使用 ajax 将 json 变量发布到服务(如您所见),但服务返回 xml 值。是否存在问题或[System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]
此代码块解决问题?
最佳答案
您的错误来自您的数据参数。将 data
对象字符串化,而不是 { '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);
}
});
您的字符串化数据将生成 {"param1":"Words"}
,然后您的服务应该能够绑定(bind) param1
参数。
关于javascript - Jquery AJAX 帖子 : 500 (Internal Server Error)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36611400/