gpt4 book ai didi

ajax - IE 在常规 ajax 请求上抛出错误

转载 作者:行者123 更新时间:2023-11-30 05:29:26 25 4
gpt4 key购买 nike

我创建的 Facebook 页面选项卡有问题。

该网站在 Chrome 和 Firefox 中运行良好,但当我尝试在 IE 中做一些简单的事情时遇到问题。

[基本网址:http://domain.com/]
[请求网址:http://domain.com/request]

我想做的是在 REQ URL 上再次从我的服务器 BASE URL 向我的服务器发出一个简单的 ajax 请求,在 Chrome 或 Firefox 中我得到了预期的结果,但是在 IE 中我得到了一些错误和警告。

警告如下(不含敏感域名信息)

SEC7118: XMLHttpRequest for https://www.facebook.com/dialog/oauth?client_id=APP_ID&redirect_uri=URL_ENCODED_REDIRECT_URI required Cross Origin Resource Sharing (CORS).

SEC7119: XMLHttpRequest for https://www.facebook.com/dialog/oauth?client_id=APP_ID&redirect_uri=URL_ENCODED_REDIRECT_URI required CORS preflight.

错误如下

SEC7120: Origin http://domain.com not found in Access-Control-Allow-Origin header.

SCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied.

我对这些错误进行了大量研究,我知道它们与跨源控制以及从一个域发出与另一个域不匹配的请求有关。奇怪的是,虽然我的两个域是相同的,所以 CORS 不应该适用。我不知道我错过了什么。我至少阅读了 20 篇关于堆栈溢出的文章,但没有一篇能够准确解决我的问题。

REQ_URL 中的/request/是一个从 Controller 调用的方法,我所需要的只是调用这个方法,没有什么特别之处,它是一个简单的 PHP 函数。

function request() {
return 'you win!';
}

ajax 使用 jQuery 发出请求,特别是 $.get 方法这是我的代码:

$.get('/request', function(response){
console.log(response);
});

我没有收到任何回复。

我也尝试过使用 $.ajax 并调用 complete 方法我得到返回“错误”的文本状态类型我希望这是上述错误的结果。

我已阅读并理解如下文章:

Cross-origin resource sharing Same-origin policy

根据同源政策,我不应该绑定(bind)到 CORS,我的获取请求应该可以正常工作,或者我是否遗漏了什么。

感谢任何帮助。

['更新']

我已经确定上述错误仅在 facebook(Facebook 页面选项卡)内部时发生,这个“我认为”是来自域“http://static.ak.facebook.com/”和我的域“http://domain.com”的 iframe 的结果这中断了同源策略规则。非常烦人,因为当进行 ajax 调用时,它们从“http://static.ak.facebook.com/”发送到“http://domain.com”,在那里我遇到了跨源策略错误。

我仍然不知道如何解决这个问题。

最佳答案

赞成票不多,浏览量也不多。

我找到了问题和解决方案。

对于我的特殊情况,我使用 session 来处理服务器端的信息,发生的事情是 session 在 IE 中没有持续存在,女巫导致我的一些其他代码将他的 ajax 请求重定向到另一个域 (facebook.com ) 导致您在上面看到的跨域请求错误。

解决方案:

我发现 IE 不喜欢通过 ajax 传递 session ,但你可以告诉它,效仿其他现代浏览器是个好主意,这就像添加 P3P header 一样简单。

在发送请求之前将此添加到您的代码中, session 变量应在请求中发送。

  header('P3P:  CP="IDC  DSP  COR  ADM  DEVi  TAIi  PSA  PSD  IVAi  IVDi  CONi  HIS  OUR  IND  CNT"');

我最终重写了我的应用程序,没有那么多对 session 的依赖,但这绝对是一个关于 IE 以及它如何通过 ajax 处理 session 的很好的学习点。

关于ajax - IE 在常规 ajax 请求上抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18226711/

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