Sam*_*Sam 38 jquery internet-explorer json
以下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...
}
});
Run Code Online (Sandbox Code Playgroud)
错误函数返回
Undefined
parsererror
OK
Run Code Online (Sandbox Code Playgroud)
没有请求服务器,所以我认为它不是JSON的问题.
固定,见#1351389
Sam*_*Sam 51
修复了,我将内容类型从简单application/json; charset=utf8改为普通application/json.
我讨厌IE :)
另外要避免IE超级缓存试试这个:
var d = new Date();
$.ajax({
url:"{{SITE_URL}}/content/twitter.json?_="+d.getTime(),
...Snip...
Run Code Online (Sandbox Code Playgroud)
这样每个请求都是IE获取的新URL:D
tan*_*hos 48
对于缓存问题,为什么不简单地使用cache: false参数?
$.ajax({
url: "yoururl",
cache: false,
....
Run Code Online (Sandbox Code Playgroud)
这是复制/粘贴吗?让我一直得到的一件事就是在对象构造函数中留下最后一个','.也就是说,大多数浏览器JS接受:
o = { a:1, b:2, c:3, };
Run Code Online (Sandbox Code Playgroud)
但是因为最后一项之后的逗号,IE会因此而窒息.将其更改为:
o = { a:1, b:2, c:3 };
Run Code Online (Sandbox Code Playgroud)
它的工作原理.
在较新版本的Internet Explorer(IE7)中,必须在调用$ .ajax之前编写下一行,否则它将永远不会调用该函数:
$.ajaxSetup({ cache: false }); //this line before $.ajax!!!
$.ajax({
//codes
//codes
//codes
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56899 次 |
| 最近记录: |