2012-01-03 39 views
1
var url = "/MyApp/pspace/filter"; 
var data = JSON.stringify(myData); 
$.post(
    url, 
    data, 
    function(response, textStatus, jqXHR) { 
    console.log("response: " + response); 
    }, 
    "json" 
); 

實際上,response應該是一個json字符串。爲什麼JQuery試圖在Firefox中將ajax響應解析爲xml?

在Chrome中,response是一個字符串,我可以用$.parseJSON()解析。

在Firefox中,responseXMLDocument(帶有分析錯誤),除非我使用dataType: "text"爲什麼?

+1

我不認爲這是你的實際代碼,它會引發語法錯誤。 – 2012-01-03 23:08:39

+0

它會嗎?修剪時我一定犯了錯誤,你看到了嗎? – 2012-01-03 23:09:22

+0

'dataType:「json」'應該只是'「json」'。我認爲JavaScript可能會將'dataType:'解釋爲標籤,但它會給我帶來錯誤。如果你通過json作爲最後一個參數,jQuery會自動解析響應。你是否檢查過響應頭? – 2012-01-03 23:10:08

回答

0

如果您將「json」設置爲您的響應類型,jQuery應該自動將它解析爲一個對象。如果你忘記告訴jQuery什麼類型的響應,期望不同的瀏覽器會以不同的方式對待它。

解決方案是確保您指定您的響應類型爲「json」,然後確保正在返回的數據是實際的JSON字符串。