IE6—在链接click事件的响应函数中发送jsonp请求不生效
$("#link").click(function(){
$.ajax({
type: 'GET',
dataType: 'jsonp',
url: 'http://test.local.com/getdetail',
data:{id:1},
success: function(response){
//IE6不执行
alert("jsonp success");
},
error: function(request, status, error){
}
}); })
1.现象:在IE6下,发送jsonp请求的script脚本,在建立http连接之后,就会停止发送请求,问题很诡异,调试很久找不到原因。google了一下,在stackoverflow找到答案(看看人家国外的问答网站,就是给力啊)。
2.解决方案:在click响应函数中,调用evt.preventDefault()。如果evt.preventDefault()不能执行(某些特殊情况),那就使用setTimeout调用jsonp(猜测,估计没问题)
$("#link").click(function(evt){
$.ajax({
type: 'GET',
dataType: 'jsonp',
url: 'http://test.local.com/getdetail',
data:{id:1},
success: function(response){
//IE6也可以执行
alert("jsonp success");
},
error: function(request, status, error){
}
});
//IE6 hack
evt.preventDefault();
})
以上转自http://blog.csdn.net/cwb0525/article/details/7744140
解决IE6 JSONP无响应的问题。
在项目开发中jsonp的请求在IE7,IE8,FF,Chrome,Safari中都木有问题。
未读IE6死活不出来结果。
后来找到了问题所在,在调用这个jsonp的方法是通过一个<a>标签的onclick事件绑定的。
<a href="javascript:;" onclick="dothing()" >jsonpRequest</a>
问题就出在这里了。
其中doting()为一个包含jsonp请求的方法名。
这里的href=“javascript:;” 原本的作用是为了让用户点击的时候不响应,不让浏览器跳回顶部,不刷新页面。
但是同时在IE6中它也阻断了jsonp的回调函数。
导致无法继续执行。
解决办法就是,干掉href属性。直接一个光秃秃的<a>标签就好了。
如下:
<a onclick="dothing()" >jsonpRequest</a>
以上内容转自http://www.cnblogs.com/didi/archive/2010/12/31/1923378.html
还可以参考 http://www.cnblogs.com/mr189/p/3705032.html
根据上面两种方案,可以使用其他标签代替a标签,例如span标签
最新文章
- Android requires compiler compliance level 5.0 or 6.0. Found &#39;1.4&#39; instead的解决办法
- c++中STL库简介及使用说明
- excel模版从xp复制到win7系统后出现错误 运行时错误 &#39;429&#39; ActiveX 部件不能创建对象
- 电子词典的相关子函数db.c程序
- 写好的mapreduce程序,编译,打包,得到最后的jar包! 验证jar包 ! 整体流程
- 获取android设备的IP
- sql server 查询性能最差的sql语句
- 【转】 xcode中常用快捷键图文并茂解释
- 关于 submit 按钮的 onclick 验证事件,第一次验证失败,第二次 submit 按钮失效的原因解析
- 使用ashx一般处理程序,读取不到Session的问题
- HDU 3046Pleasant sheep and big big wolf(切最小网络流)
- Spring初识(通过小实例清晰认识Spring)
- Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(八)
- Javascript高级编程学习笔记(46)—— 选择符API
- Java线程的5种状态及切换(透彻讲解)-京东面试
- c# 遍历类中的方法名称
- node.js 简单的获取命令参数
- 【转】Tesla autopilot 引起致命车祸
- tf.placeholder
- solr相关
热门文章
- bzoj 1236: longpo的回文
- maven打包出现找不到java.lang包的问题
- [转]115个Java面试题和答案——终极列表(下)
- 8VC Venture Cup 2016 - Elimination Round E. Simple Skewness 暴力+二分
- GCC编绎详解
- kevinekline----------------- SQLSERVER MVP
- JavaScript 巧学巧用
- express默认配置文件app.js
- 解决Hue/hiveserver2报错:java.io.IOException: Job status not available
- 永远不要去B网(Bittrex.com)