从jQuery ajax到asp.net WebService的错误响应,但没有错误

时间:2011-02-16 22:10:11

标签: asp.net ajax jquery

我有一个调用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返回,并且“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));
}

1 个答案:

答案 0 :(得分:0)

Visual Studio重新启动后问题已解决。不知道为什么,但已完成和完成。