gpt4 book ai didi

ajax - 跨子域 AJAX 适用于 Chrome,不适用于 IE

转载 作者:行者123 更新时间:2023-12-05 01:20:23 25 4
gpt4 key购买 nike

我在 local.mydomain.com 上运行了我的站点的本地构建。我正在向 api.mydomain.com 发出 ajax 请求,它在 AWS 服务器上运行并返回 JSON。在 Chrome 中,我可以毫无问题地调用 API。但是在 IE 中,我得到拒绝访问。

研究了一下,好像是跨(子)域的限制。但我的印象是此限制将适用于两种浏览器。任何人都可以看到这里可能出了什么问题以及为什么它可能在某些浏览器中工作而不在其他浏览器中工作吗?

最佳答案

看起来问题出在 IE8+ 希望您使用的传输对象中。 jQuery 使用 ActiveXObject(用于 IE)或 XMLHttpRequest(所有其他),但 IE 8 及更高版本需要用于 ajax 的 XDomainRequest。

你可以做的是像这样通过 $.ajaxSettings.xhr 返回一个自定义的 xhr 对象,

// override xhr for browser that use XDR
if ('XDomainRequest' in window && window.XDomainRequest !== null) {

// override default jQuery transport
jQuery.ajaxSettings.xhr = function() {
try { return new XDomainRequest(); }
catch(e) {
console.log('test');
}
};

// also, override the support check
jQuery.support.cors = true;
}

我从这里关于这个主题的讨论中提取了这段代码: http://graphicmaniacs.com/note/getting-a-cross-domain-json-with-jquery-in-internet-explorer-8-and-later/

如果您认为自己遇到了同样的问题,一定要看一看。

关于ajax - 跨子域 AJAX 适用于 Chrome,不适用于 IE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11143226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com