• 解决$.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等,但这只是一个测试环境,真实环境并没有出现这个问题。专门讲解决跨域问题,那就是另外一个话题了。

     

  • 相关阅读:
    HTML框架
    HTML链接
    kzalloc 函数详解(转载)
    LCD接口(转载)
    S3C2440上RTC时钟驱动开发实例讲解(转载)
    PHP 真值与空值
    http chunked 理解
    c# 基础
    美式音标注意事项
    groovy 闭包
  • 原文地址:https://www.cnblogs.com/leaf930814/p/6923568.html
Copyright © 2020-2023  润新知