$("#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请求不生效的更多相关文章

  1. Vue中发送ajax请求——axios使用详解

    axios 基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 node.js 中使用 功能特性 在浏览器中发送 XMLHttpRequests 请求 在 node.js 中发送 htt ...

  2. jquery中on绑定click事件在苹果手机中不起作用

    写一个div当做了一个按钮来使用. <div class="button"> <div class="sure"> 确定 </di ...

  3. 如何在WinForm中发送HTTP请求

    如何在WinForm中请求发送HTTP 手工发送HTTP请求主要是调用 System.Net的HttpWebResponse方法 手工发送HTTP的GET请 求: string strURL = &q ...

  4. iOS中发送HTTP请求的方案

    在iOS中,常见的发送HTTP请求的方案有 苹果原生(自带) NSURLConnection:用法简单,最古老最经典的一种方案 NSURLSession:功能比NSURLConnection更加强大, ...

  5. golang中发送http请求的几种常见情况

    整理一下golang中各种http的发送方式 方式一 使用http.Newrequest 先生成http.client -> 再生成 http.request -> 之后提交请求:clie ...

  6. angular5中使用jsonp请求页面

    说多了,都是眼泪,折腾了很久,各种百度,查到的例子,全都报错,可能是因为我的angular的版本太高,向下都不兼容? 我的angular版本为最新的5.2.11: 下面是正确的jsonp请求的方法 1 ...

  7. rails中发送ajax请求

    最近在写一个blog系统练练手,遇到一个一个问题,用户添加评论的时候想发送ajax请求,但是rails里的ajax和Python中的不太一样,Python中的ajax是用js,jquery实现的和ra ...

  8. java中发送http请求的方法

    package org.jeecgframework.test.demo; import java.io.BufferedReader; import java.io.FileOutputStream ...

  9. Js/Ajax中发送HttpPost请求调用WebService

    1) WebService中的方法 [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(Confo ...

随机推荐

  1. codevs 1297 硬币

    1297 硬币  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 我们知道即使是同一种面值的硬币, ...

  2. [转]Java常用概念解答

    1. 事务是什么? 事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性. 一致性.隔离性和持久性)属性,只有这样才能成为一个事务: 原子性 事务必须是原子工 ...

  3. iOS 常用工具库LFKit功能介绍

    简介:LFKit包含了平时常用的category,封装的常用组件,一些工具类. 需要LFKit中所有自定义控件的pod 'LFKit/Component' 需要LFKit中所有category的pod ...

  4. mysql事务简单测试

    Auth: jinDate: 20140507 一.事务控制默认情况下,MySQL是自动提交(autocommit)的,如果需要通过明确的commit和rollblack来提交和回滚事务,那么需要通过 ...

  5. WebAPI 操作返回

    定义了一个返回枚举: public enum ResultExceptionEnum { 积分不足 = , 支付失败 = , 用户不存在 = , 验证码发送失败 = , 验证码不正确 = , 账号已存 ...

  6. C语言中的位域、字节序、比特序、大小端

    转:http://www.360doc.com/content/13/0624/10/496343_295125641.shtml 1.比特序 / 位序 /  bit numbering / bit  ...

  7. Setup JIRA Service Desk 3.9.2 on Oracle Linux 6.8

    OS Oracle Linux 6.8 V138414-01.iso Database mysql5.6.30 MySQL-5.6.30-1.el6.x86_64.rpm-bundle.tar JIR ...

  8. [Android Pro] java.lang.IllegalStateException: Fragment(XXFragment) not attached to Activity异常

    转载:http://blog.csdn.net/winson_jason/article/details/20357435 下边两个问题,是在开发中碰到的一些关于Fragment的偶发性的问题,今天时 ...

  9. ECCV 2014 Oral Paper

    今年的ECCV 的paper已经挂到了网上.本文整了当中Oral Paper. 一,Tracking and Activity Recognition

  10. jQuery对象的序列化详解

    一.param() 方法创建数组或对象的序列化表示. 该序列化值可在进行 AJAX 请求时在 URL 查询字符串中使用. 语法: jQuery.param(object,traditional) ob ...