不知道多少人碰见过这个情况,当你使用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 对象时出错,所以我去查看服务器返回数据是否格式错误,假如你也认为是这样的话,很抱歉,没有错误。