2012-01-03 37 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字符串。