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

     

  • 相关阅读:
    爬虫:Scrapy15
    爬虫:Scrapy14
    爬虫:Scrapy13
    爬虫:Scrapy12
    爬虫:Scrapy11
    爬虫:Scrapy10
    爬虫:Scrapy9
    线段树基础
    [USACO08DEC]秘密消息Secret Message
    阅读理解
  • 原文地址:https://www.cnblogs.com/leaf930814/p/6923568.html
Copyright © 2011-2022 走看看