2011-02-16 103 views
2

我有一個ajax查詢,它調用WebService。它起作用並做它的事情,並且什麼也沒有返回(這是一個空白)。調試時應用程序中沒有錯誤。但jquery .ajax的錯誤事件不斷髮射。 textStatus和errorThrown未定義。 XMLHttpRequest沒有指示錯誤狀態。從jQuery ajax到asp.net WebService的錯誤響應,但沒有錯誤

爲什麼此查詢認爲它得到錯誤響應?另外奇怪的是:如果我在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」來試用它。嘗試了響應格式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)); 
} 
+0

這是一個跨域請求嗎? – 2011-02-16 22:30:08

回答

0

問題在Visual Studio重新啓動後解決。不知道爲什麼,但完成和完成。