IE中失败的jQuery AJAX请求

以下AJAX调用在IE中失败。

$.ajax({ url:"{{SITE_URL}}/content/twitter.json", dataType:"json", error:function(xhr, status, errorThrown) { alert(errorThrown+'\n'+status+'\n'+xhr.statusText); }, success:function(json) { ...Snip... } }); 

错误函数返回

 Undefined parsererror OK 

没有请求是服务器,所以我不认为它与JSON的问题。

固定,请参阅#1351389

固定,我改变了application/json; charset=utf8的内容typesapplication/json; charset=utf8 application/json; charset=utf8只是简单的application/json
我讨厌IE浏览器:)

也要避免IE超级caching试试这个:

 var d = new Date(); $.ajax({ url:"{{SITE_URL}}/content/twitter.json?_="+d.getTime(), ...Snip... 

这样每个请求是一个新的IE浏览器的url得到:D

对于caching问题,为什么不简单地使用cache: false参数?

 $.ajax({ url: "yoururl", cache: false, .... 

这是复制/粘贴? 让我一直都在的东西是把最后一个“,”留在对象构造函数中。 也就是说,大多数浏览器JS接受:

 o = { a:1, b:2, c:3, }; 

但IE扼杀了这个,因为最后一个项目后的逗号。 将其更改为:

 o = { a:1, b:2, c:3 }; 

它的工作。

在较新版本的Internet Explorer(IE7)中,需要在调用$ .ajax之前写入下一行,否则将永远不会调用该函数:

 $.ajaxSetup({ cache: false }); //this line before $.ajax!!! $.ajax({ //codes //codes //codes }); 

IE真正积极地cachingAJAX请求(反正比Firefox更重要)。 如果这不适合您的站点,则需要在响应中正确设置Cache-Control标头。

静态生成的JSON和IE的一个主要问题是领先的“逗号”,例如在IE中引发错误:

 { "one":"hello", "two":"hi", } 

注意最后一个逗号。

什么是{{SITE_URL}}块是关于。 尝试查看浏览器的查看源代码中的代码。 如果{{SITE _URL}}块有一个结尾的斜杠,并且会使请求url:

 http://modomain.com//content/twitter.json

哪个可以蠕变IE浏览器?

IE:JSON未定义错误解决在

http://funkatron.com/site/comments/safely-parsing-json-in-javascript/

通过使用dataType:“json”并避免parsing