我使用jQuery一些非常簡單的AJAX調用解析錯誤。
我的c#webmethods被標記爲[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
並返回格式正確的JSON。
這在FF的偉大工程,但在IE瀏覽器都瘋了:
錯誤處理程序被調用,其中response
有status = 200
(!!),該responseText
是有效的JSON我想要得到的,而statusText
爲"parsererror"
。的jQuery + IE 7和8 - 讓JSON數據時
我看到SO上的某個地方(似乎無法再次找到它),問題在於IE需要xml格式響應,並在其他任何地方拋出解析器異常。
建議的解決方案中,基本上,使用錯誤處理程序是成功的處理程序:
$.ajax(
{
url: "SampleScriptService.asmx/Function",
type: "POST",
data: {},
contentType: "application/json;",
dataType: "json",
success: function (result) {
SuccesFunction(result.d);
},
error: function (e) {
if (e.status != 200) {
alert("this is a real error");
}
SuccesFunction(JSON.parse(e.responseText).d);
}
});
這似乎真的哈克給我。有誰知道任何其他解決方案?
p.s.事情我已經嘗試:these,this,所有的解決方案建議here
UPDATE
不知道是否它的相關與否,但IE瀏覽器也給這個奇怪的錯誤 -
Expected ';' Line: 101139813 Char: 5 Code: 0 URI: http://localhost/sample/samplePage.htm
不用說,我的htm文件包含〜100行。
如果我不做ajax調用(因此 - 上述錯誤處理程序未被調用),則不會出現此錯誤。
不知道你試過的建議是,但有一個問題,你的'contentType'是JSON,但您的數據是一個空字符串。試試'data:「{}」,使它成爲一個空的JSON對象。 – lonesomeday 2011-05-15 12:03:34
@lonesomeday:嘗試過;還是一樣。 – 2011-05-15 12:28:06