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标签
IE6—在链接click事件的响应函数中发送jsonp请求不生效的更多相关文章
- Vue中发送ajax请求——axios使用详解
axios 基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 node.js 中使用 功能特性 在浏览器中发送 XMLHttpRequests 请求 在 node.js 中发送 htt ...
- jquery中on绑定click事件在苹果手机中不起作用
写一个div当做了一个按钮来使用. <div class="button"> <div class="sure"> 确定 </di ...
- 如何在WinForm中发送HTTP请求
如何在WinForm中请求发送HTTP 手工发送HTTP请求主要是调用 System.Net的HttpWebResponse方法 手工发送HTTP的GET请 求: string strURL = &q ...
- iOS中发送HTTP请求的方案
在iOS中,常见的发送HTTP请求的方案有 苹果原生(自带) NSURLConnection:用法简单,最古老最经典的一种方案 NSURLSession:功能比NSURLConnection更加强大, ...
- golang中发送http请求的几种常见情况
整理一下golang中各种http的发送方式 方式一 使用http.Newrequest 先生成http.client -> 再生成 http.request -> 之后提交请求:clie ...
- angular5中使用jsonp请求页面
说多了,都是眼泪,折腾了很久,各种百度,查到的例子,全都报错,可能是因为我的angular的版本太高,向下都不兼容? 我的angular版本为最新的5.2.11: 下面是正确的jsonp请求的方法 1 ...
- rails中发送ajax请求
最近在写一个blog系统练练手,遇到一个一个问题,用户添加评论的时候想发送ajax请求,但是rails里的ajax和Python中的不太一样,Python中的ajax是用js,jquery实现的和ra ...
- java中发送http请求的方法
package org.jeecgframework.test.demo; import java.io.BufferedReader; import java.io.FileOutputStream ...
- Js/Ajax中发送HttpPost请求调用WebService
1) WebService中的方法 [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(Confo ...
随机推荐
- 【bitset】【推导】hdu5961 传递
<法一>http://blog.csdn.net/u014325920/article/details/53046890 1.判断传递的条件为:若G中有 一条边从a到b且有一条边从b到c ...
- echarts 关系图graph force布局 拖动节点并固定不返回原点
myChart.on('mouseup',function(params){var option=myChart.getOption();option.series[0].nodes[params.d ...
- 二叉搜索树BStree
二叉搜索树,实际上是有点类似于二分查找.实际上很简单,就是递归.直接上代码,有点要注意的就是删除的时候,如果是左子树和右子树都存在的话,要寻找继承者(successor). import java.u ...
- PHP 正则表达式匹配 img ,PHP 正则提取或替换图片 img 标记中的任意属性。
PHP正则提取或替换img标记属性 PHP 正则表达式匹配 img ,PHP 正则提取或替换图片 img 标记中的任意属性. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
- linux svn 配置
#svnadmin create projectname #vi projectname/conf/svnserve.conf anon-access = noneauth-access =write ...
- <摘录>GCC 中文手
GCC 中文手册 作者:徐明 GCC Section: GNU Tools (1) Updated: 2003/12/05 Index Return to Main Contents -------- ...
- webpack与browser-sync热更新原理深度讲解
本文首发于CSDN网站,下面的版本又经过进一步的修订.原文:webpack与browser-sync热更新原理深度讲解本文包含如下内容: webpack-hot-middleware EventSou ...
- sqlmap的二次开发
1.sqlmapapi的帮助信息. -s 启动sqlmap作为服务器 -h 指定sqlmap作为服务器的IP地址,默认127.0.0.1 -p 指定sqlmap服务器的端口,默认端口为8775 2.启 ...
- Windows安装和配置Tomcat
1 从http://tomcat.apache.org下载Tomcat压缩包,我这里下的版本是7.0.67. 2 将Tomcat压缩包解压缩到任意路径下,我这里的解压缩路径为E:\tomcat-7 ...
- Hadoop 伪分布式上安装 Hive
下载地址:点此链接(P.S.下载带bin的安装包) 下载hive后放到虚拟机文件夹内,打开: -bin.tar.gz -C /home/software/ 修改并保存环境配置: gedit /etc/ ...