IE6 AJAX BUG [object error]

不知道多少人碰见过这个情况,当你使用jQuery 的ajax 方法调取JSON 或JSONP 对象时,在本地调试一切正常(包括IE6),但上传到服务器时IE6 就无法执行了。

假设代码是这样的:

1
2
<div id="c"></div>
<a href='javascript:' id="btn">test</a>
1
2
3
4
5
6
7
8
$("#btn").on("click",function(){
	$.ajax({
		url:"1.json",
		dataType:"JSON" //JSON 或 JSONP
	}).done(function(data){
		$("#c").html(data.content);
	})
})

本地调试时包括IE6 在内各大主流浏览器都执行正常,上传到服务器再访问时,ie6 失败了。

以前一直使用的 <a href=”javascript:void(0)”>,自从看了《疑问:为什么要使用href=”javascript:void(0);”?》这篇文章后我也开始使用 <a href=”javascript:”>,所以我尝试修改回去,结果还是不行。

然后我想看看错误信息,改了下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$("#btn").on("click",function(){
	$.ajax({
		url:"1.json",
		dataType:"JSON" //JSON 或 JSONP
	}).done(function(data){
		$("#c").html(data.content);
	}).fail(function(a,b,c){
		alert(a.readyState);	//输出:4
		alert(a.responseText);	//输出:undefined
		alert(a.status);	//输出:200
		alert(a.statusText);	//输出:success
		alert(b);	//输出:parseeror
		alert(c);	//输出:[object error]
	})
})

看情况是数据获取正常,但转换为JSON 对象时出错,所以我去查看服务器返回数据是否格式错误,假如你也认为是这样的话,很抱歉,没有错误。

继续阅读全文