ie对于ajax跨域的问题-ag捕鱼王app官网

ie对于ajax跨域的问题

作者:迹忆 最近更新:2022/12/11 浏览次数:

ajax在web系统中应用非常广泛,但是在web系统中经常会遇到跨域的问题。默认情况下,各浏览器对ajax跨域访问是禁止的。限制尤其严格的当属ie浏览器。对于火狐,谷哥,safari等浏览器使用jquery中的ajax跨域访问是比较简单的。在《ajax跨域cookie相关设置》这篇文章中对这个问题所涉及到的ajax和服务端进行了介绍。这里就不再赘述。

下面我们着重介绍在ie浏览器下应该如何允许ajax跨域访问。

通过上面那篇文章我们知道,如果仅仅是允许浏览器跨域访问的话,那也是非常简单。在浏览器端不需要做任何的修改,就是正常的ajax代码即可,所做的工作都在服务端进行设置。

ajax代码

$.ajax({
       url: 'http://www.onmpw.com/ajax.php',
       type: 'get',
       datatype: 'json',
       success: function (res) {
           console.log(res);
       },
       error: function (err) {
          console.log(err);
       }
 }) 

php代码

$origin = $_server['http_origin'];
header("access-control-allow-origin:" . $origin);

当然了,对于ie浏览器来说其实服务端是相同的。所不同的就是前端部分。并不是ie浏览器都不支持类似上面的跨域方式,ie10 就是能够很好的支持的。这是值得我们高兴的地方。毕竟ie给我们留了一条活路。但是ie8、ie9依然活在大部分用户的电脑上面。所以我们也需要考虑那些执著的用户。

抱着侥幸的心理,我们在ie9上面运行了上述的代码。刚刚燃起的希望之火一下子就被浇灭了。怎么办,于是修改ajax代码

$.ajax({
     url: 'http://www.onmpw.com/ajax.php',
     type: 'get',
     crossdomain: true,
     datatype: 'json',
     success: function (res) {
        console.log(res);
     },
     error: function (err) {
        console.log(err);
     }
 })

这次应该没问题了,继续运行。结果希望被二度消灭。经过一阵子的翻箱倒柜恍然大悟,原来ie9是不支持crossdomain的。

怎么办,难道只能放弃执著于ie9-的那些用户了?不能够,总得给那些用户一个坚持下去的理由啊!

虽然使用jquery在ie9-下不能跨域访问,但是可以使用ie提供的xdomainrequest来进行访问。下面我们来看一下应该如何使用:

var xdr = new xdomainrequest(); // use microsoft xdr
xdr.open('get', 'http://www.onmpw.com/ajax.php');
xdr.onload = function () {
   var dom  = new activexobject('microsoft.xmldom'),json = $.parsejson(xdr.responsetext);
   dom.async = false;
   if (json == null || typeof (json) == 'undefined') {
         json = $.parsejson(data.firstchild.textcontent);
   }
   console.log(json.res); //json.res是返回结果
};
xdr.onerror = function() {
   _result = false;
};
xdr.send();

在服务端代码不用改变的情况下上述ajax终于可以在ie9-浏览器上跨域跑起来了。

总起来说,ie对于跨域问题限制的还是比较严格的。对于我们程序员来说就比较麻烦了,但是这些问题总归要解决的。

上一篇:

下一篇:如何将网站从http重定向到https

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

发布时间:2024/03/24 浏览次数:156 分类:javascript

在今天的文章中,我们将学习在 jquery 中处理 ajax 中的失败请求。

发布时间:2024/03/24 浏览次数:140 分类:javascript

本教程演示了如何在 jquery ajax 中使用标头。

在 golang 中启用 cors

发布时间:2023/04/27 浏览次数:179 分类:go

本篇文章介绍如何在 golang 中启用和使用 cors。go 语言 cors。跨源资源共享 (cors) 是一个基于 http 标头的过程,

发布时间:2023/03/29 浏览次数:141 分类:php

本文解释了如何将 php 与 ajax 一起使用。

flask cors 跨域问题

发布时间:2023/03/27 浏览次数:258 分类:python

这个解释是关于ag捕鱼王app官网在 flask 应用程序中创建 api 时出现的一个问题,以及当我们尝试从不同域访问 flask 应用程序时如何修复错误。

发布时间:2023/03/13 浏览次数:160 分类:web前端

本教程演示了如何在 jquery ajax 中使用数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便
网站地图