zoukankan      html  css  js  c++  java
  • 解决$.ajax()在IE10以下失效的问题

    一、问题重现

    本地的脚本请求测试环境的接口

    $.ajax({
    	url: ***,
    	type: GET,
    	data: data,
    	success: function (data) { **** }
    });

    在chrome、Firefox和IE9以上的都正常发送请求,IE10以下没有发送请求。

    二、解决思路

    $.ajax()中把错误信息显示出来

    $.ajax({
    	url: ***,
    	type: GET,
    	data: data,
    	success: function (data) { **** }
            error: function (a, b, c) {alert(c);}
    });
    

     

    三、原来是 No Transport错误

    网上说是涉及到跨站脚本攻击,所以不让提交。

    四、解决
    在$.ajax()前加上下面这句话(jQuery.support.cors = true;),这是对cors协议的一种实现,CORS是W3C中额度一项新特性,能让jQuery支持跨域请求。

    jQuery.support.cors = true;
    $.ajax({
    	url: ***,
    	type: GET,
    	data: data,
    	success: function (data) { **** }
    });

    注意:实际开发环境中是不可以加上jQuery.support.cors = true;这句话的。

    其实JQuery已经提供了专门的方法支持跨域请求,比如jsonp等,但这只是一个测试环境,真实环境并没有出现这个问题。专门讲解决跨域问题,那就是另外一个话题了。

     

  • 相关阅读:
    架构之路(六):把框架拉出来
    读取mdb文件
    基类、子类之间的类型转换
    WPF Trigger
    WPF 打开txt文件
    C# 匿名方法
    自定义显隐式类型转换
    枚举获得Description扩展方法
    IFormattable和IFormatProvider
    WPF DataGrid下滑动态加载数据
  • 原文地址:https://www.cnblogs.com/leaf930814/p/6923568.html
Copyright © 2011-2022 走看看