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 ...
随机推荐
- 一个简单的Spring程序
首先,要用Eclipse开发Spring程序,需要安装Spring插件并重启Eclipse 具体操作: 新建java Project后,导入需要使用的包(提前下好Spring),Spring包包含6个 ...
- opensuse语言环境和中文输入法
Auth: JinDate: 20140414 版本:13.1 步骤 1.安装opensuse 语言选择英文 2.设置最近的源 比如sohu,163 3.update 4.Control Center ...
- Struct2_定义拦截器并使用注解方式作用在Action的方法中
一.目的:通过在方法上加注解控制哪些方法需要登陆后才能访问 二.方式:利用拦截器判断用户是否登陆 三.实现步骤 定义配置文件struts.xml添加节点 1 2 3 4 5 6 7 8 9 1 ...
- PTCRS 目前投资最成功的的PTC站点
PTCRS算是我投资的比较成功的一个PTC网站,因此首先和大家介绍一下,因为PTC最开始的几个月盈利空间非常大,即使这样,在这20多天里面站长也已经稍微调低了盈利水平. 目前基本上Golden会员租赁 ...
- MySQL 的instr函数
1.测试数据库: MYSQL数据库 INSTR(STR,SUBSTR) 在一个字符串(STR)中搜索指定的字符(SUBSTR),返回发现指定的字符的位置(INDEX); STR 被搜索的字符串 SUB ...
- git log --oneline --graph的读法
星号表明这个提交所在的分支: 最左边的直线表示当前分支的历史状态,从图看,当前分支HEAD是master分支 :提交历史是:8cfbb25<--d486463<--a88c595<- ...
- Java笔记18:JUnit单元测试
1 从http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22junit%22%20AND%20a%3A%22junit%22 上下载最新的junit包. ...
- RocketMQ 拉取消息-文件获取
看完了上一篇的<RocketMQ 拉取消息-通信模块>,请求进入PullMessageProcessor中,接着 PullMessageProcessor.processRequest(f ...
- php.in
[PHP] ;;;;;;;;;;; ; WARNING ; ;;;;;;;;;;; ; This is the default settings file for new PHP installati ...
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)如何修改标准驱动器编码器分辨率
在某个轴的Enc上双击,可以修改Scaling Factor Numerator 更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: http://i.youku.com/acetao ...