IE6下jsonp访问被aborted掉的原因及解决办法
今天发现,在IE6中,如果通过点击一个A标签来发起一个jsonp请求,而且这个A标签恰恰设置了href="javascript:void(0)" 或者href="javascript:;"。这个jsonp请求会发送出去,而且服务器会接收到请求,但是最终这个请求会被abort掉,然后就杯具了。。。
这句IE会出问题。
<a href="javascript:void(0)" onclick="jsonpRequest()">请求</a>
而这句<a href="#" onclick="jsonpRequest()">请求</a> 则能正常使用不过需要阻止默认行为event.preventDefault()。
$("a").click(function(event){
event.preventDefault();
});
原理:
href="javascript:void(0)"本意就是阻止A标签的点击默认行为,但是在IE6中这样同时把jsonp请求也给阻止了。