• IE6—在链接click事件的响应函数中发送jsonp请求不生效


     1 $("#link").click(function(){
     2     $.ajax({
     3         type: 'GET',
     4         dataType: 'jsonp',
     5         url: 'http://test.local.com/getdetail',
     6         data:{id:1},
     7         success: function(response){
     8             //IE6不执行 
     9             alert("jsonp success");
    10         },
    11         error: function(request, status, error){
    12             
    13         }
    14     });
    15 
    16 })

         1.现象:在IE6下,发送jsonp请求的script脚本,在建立http连接之后,就会停止发送请求,问题很诡异,调试很久找不到原因。google了一下,在stackoverflow找到答案(看看人家国外的问答网站,就是给力啊)。

         2.解决方案:在click响应函数中,调用evt.preventDefault()。如果evt.preventDefault()不能执行(某些特殊情况),那就使用setTimeout调用jsonp(猜测,估计没问题)

     1 $("#link").click(function(evt){
     2     $.ajax({
     3         type: 'GET',
     4         dataType: 'jsonp',
     5         url: 'http://test.local.com/getdetail',
     6         data:{id:1},
     7         success: function(response){
     8             //IE6也可以执行 
     9             alert("jsonp success");
    10         },
    11         error: function(request, status, error){
    12             
    13         }
    14     });
    15    //IE6 hack
    16     evt.preventDefault();
    17 }) 

    以上转自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标签

  • 相关阅读:
    fastjson 简单使用 及其JSONObject使用
    HttpClient 的使用
    python操作excel xlwt (转)
    matplotlib 设置标题 xy标题等
    matplotlib 饼状图
    Mac下面 matplotlib 中文无法显示解决
    matplotlib 折线图
    matplotlib条形图
    matplotlib直方图
    python matplotlib配置
  • 原文地址:https://www.cnblogs.com/yiliweichinasoft/p/3806819.html
Copyright © 2020-2023  润新知