jQuery的ajax在ie8上无法工作

3

我有这个调用:

$.ajax({dataType: "json",
        url: '<url_here>',
        cache: false,
        success: function(data, textStatus, jqXHR ) {
            success(data, textStatus, jqXHR);
        }
});

这段代码在除IE外的所有浏览器上都能正常运行:((我正在测试8版本)成功函数从未被调用,看起来函数(.ajax)没有正确执行(或根本没有执行)。有人知道如何在IE 8上使用jquery ajax吗?


你在某个地方使用了 console.log 吗? - Seder
你还应该提供一个 error 回调来查看是否有任何错误返回。 - Anthony Forloney
2个回答

4

这个问题总是出现,一个人自问自答 :)

问题在于似乎IE浏览器不能解析来自ajax请求网站的头信息。因此,由于这是跨域请求,它允许通过。因此,我必须在IE安全设置中激活“跨域访问数据源”。在其他浏览器上,只需添加头信息Access-Control-Allow-Origin: *即可进行跨站点脚本编写,但在IE上不行。

还有一件事,我需要在脚本中添加: jQuery.support.cors = true;

否则会出现“No transport available”错误。


0

这是因为默认情况下,IE8不支持JSON。您需要在项目中包含json2库。


我只需要json2还是所有*.js文件?因为只有json2.js它不能工作 :( - Carlos Silva
你只需要包含json2.js文件。在IE8中,按F12打开开发者工具栏,然后查看控制台。你应该能在那里看到你的确切错误。 - Chris Dixon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接