我有一个调用 WebService
的 ajax 查询。它工作并做它的事情,并且什么也不返回(它是一个空)。调试时应用程序没有错误。但 jquery .ajax 的错误事件不断触发。 textStatus 和 errorThrown 未定义。 XMLHttpRequest 没有错误状态的指示。
为什么此查询认为它收到错误响应?
也很奇怪:如果我在 WebMethod 中放置断点,那么在方法完成之前就会在客户端抛出错误。它似乎没有等待它完成,它只是直接进入错误事件。我希望这与这里的问题有关......
$.ajax({
url: baseUrl() + "/webservices/usersetting.asmx/SetSetting",
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
data: $.toJSON(ajaxData),
success: function (data) {
alert('success');
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Error: " + errorThrown + " data: " + ajaxData.id);
}
});
在错误事件中调试时:
XMLHttpRequest
abort: function (){w&&Function.prototype.call.call(g,w);L("abort")}
onabort: null
onerror: null
onload: null
onloadstart: null
onprogress: null
onreadystatechange: function (){}
readyState: 4
response: ""
responseText: ""
responseType: ""
responseXML: null
status: 0
statusText: ""
upload: XMLHttpRequestUpload
withCredentials: false
__proto__: XMLHttpRequest
方法如下。我用 void return 和“true”尝试了它。尝试了responseformat Xml和Json。没有区别。
[WebMethod(EnableSession = true),
ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
public string SetSetting(List<UserSettingData> data)
{
UserSettingManager setMgr = new UserSettingManager(Global.UserSession.UserID);
foreach (UserSettingData item in data)
{
setMgr.SetSetting(item.name, item.value);
}
return (jsonString(true));
}
最佳答案
重新启动 Visual Studio 后问题已解决。不知道为什么,但已经完成了。
关于asp.net - 从 jQuery ajax 到 asp.net WebService 的错误响应,但没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5022756/