【问题标题】:Jquery ajax not working in IE9 even with cors = true即使使用 cors = true,Jquery ajax 也不能在 IE9 中工作
【发布时间】:2013-03-28 10:07:22
【问题描述】:

这是我的简单 ajax 代码,它适用于 FFX 和 Chrome,但不适用于 IE9。我厌倦了这个我无法表达的浏览器。这是我的 jQuery 代码:

   $.ajax({
                type: "GET",
                dataType: "xml",
                crossDomain: true,
                cache:false,
                url: "http://somedomain.net/folder/ap/connector.php"
            }).success(function (result, payPalresult) {
});

在document.ready和connector.php里面有

Access-Control-Allow-Origin *

当我签入 Fiddler 时。现在这段代码可以在 FFX 和 Chrome 上运行,但在 IE9 中没有进行 ajax 调用

我什至有这个:

 $.support.cors = true;

在这一点上我有什么遗漏吗?我正在从 localhost 发出 AJAX 请求

【问题讨论】:

标签: jquery xml ajax internet-explorer-9


【解决方案1】:

jQuery 不支持 IE 的 XDomainRequest 对象,这是 IE9 用于 CORS 的对象。只有 IE10 使用 XMLHttpRequest 进行 CORS。我相信您可以找到一个用于启用XDomainRequest 对象的jQuery 补丁/插件。 jQuery 网站上的this ticket 中的更多信息(包括六个月前更新的补丁/插件的链接,非常新)。

【讨论】:

    【解决方案2】:

    如果不使用 xdr(无论如何在受信任的站点区域中)并假定 CORS 为真且 crossDomain 为真,则对 IE9 的解决方法有任何帮助。

    在进行 POST 时,序列化表单,而是从表单中提取您需要的所有数据,并将每个数据设置为 $ 数据容器中的名称:值对。然后就可以了。

    HTH

    【讨论】:

      猜你喜欢
      • 2020-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多