我的ajax电话突然停止工作,我无法弄清楚原因。我没看到什么?
ASP.NET State Server
被关闭了。[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string Test(string message)
{
return message;
}
$.ajax({
url: '/Test.asmx/Test',
data: {message:'hello'},
type: "POST",
async: true,
contentType: "application/json; charset=UTF-8",
dataType: "json",
beforeSendMethod: function (xhr) {
xhr.setRequestHeader("Content-type", "application/json; charset=utf-8");
},
success: function (data, textStatus, jqXHR) {
console.log('success!',data, textStatus, jqXHR);
},
error: function (data, textStatus, jqXHR) {
console.log('error!',data, textStatus, jqXHR);
}
});
Message: Invalid web service call, missing value for parameter: 'message'.
StackTrace: at System.Web.Script.Services.WebServiceMethodData.CallMethod(Object target, IDictionary`2 parameters)
at System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary`2 parameters)
at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams)
at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)
ExceptionType: System.InvalidOperationException
$.ajax({
url: '/Services/Authentication.asmx/Test',
data: {message:'hello'},
type: "POST",
success: function (data, textStatus, jqXHR) {
console.log('success!',data, textStatus, jqXHR);
},
error: function (data, textStatus, jqXHR) {
console.log('error!',data, textStatus, jqXHR);
}
});
除了WebMethod返回XML而不是JSON:
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">hello</string>
答案 0 :(得分:2)
有史以来最愚蠢的错误。 ASP.NET State Service
已关闭,忘记将其设置为在我打开时自动启动。重新启动我的电脑,忘了我正在使用它。 Visual Studio没有抛出任何异常。它看起来好像我在调用WebMethod错了。一旦我重新开启服务,一切正常。
答案 1 :(得分:0)
Walter,我使用相同的 methodology 方法。但是我注意到你的标题和我在成功通话中看到的内容之间存在差异:
我的成功请求有效负载
您的申请有效负载失败
您的有效负载看起来不像是一个对象,而只是一个字符串。