可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
The following AJAX call is failing in 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...
}
});
The error function returns
Undefined
parsererror
OK
No request is made to the server so I don't think its a problem with the JSON.
Fixed, See #1351389
回答1:
Fixed, I changed the content-type from application/json; charset=utf8
to just plain application/json
.
I hate IE :)
Also to avoid IE super-caching try this:
var d = new Date();
$.ajax({
url:"{{SITE_URL}}/content/twitter.json?_="+d.getTime(),
...Snip...
That way each request is a new url for IE to get :D
回答2:
For the caching problem why don't you simple use the cache: false
parameter?
$.ajax({
url: "yoururl",
cache: false,
....
回答3:
is this a copy/paste? the one thing that gets me all the time is leaving the last ',' in an object constructor. that is, most browsers JS accept:
o = { a:1, b:2, c:3, };
but IE chokes on this because the comma after the last item. change it to:
o = { a:1, b:2, c:3 };
and it works.
回答4:
In newer versions of internet explorer (IE7) it is necessary to write the next line before calling $.ajax, otherwise it would never call the function:
$.ajaxSetup({ cache: false }); //this line before $.ajax!!!
$.ajax({
//codes
//codes
//codes
});
回答5:
IE caches AJAX requests really aggressively (more so than Firefox, anyway). You need to set the Cache-Control headers in the response appropriately if this is not right for your site.
回答6:
One major problem with statically generated JSON and IE are the leading "commas", for examples this throws an error in IE:
{
"one":"hello",
"two":"hi",
}
Note the last comma.
回答7:
What is the {{SITE_URL}} chunk giving is about. Try looking at the code in view source code of the browser. If the {{SITE _URL}} chunk has a trailing slash and that would make the request url:
http://modomain.com//content/twitter.json
Which could creep IE out?
回答8:
IE: JSON not defined error resolved at
http://funkatron.com/site/comments/safely-parsing-json-in-javascript/
by using dataType: "json" and avoid parsing