gpt4 book ai didi

javascript - CORS 在 Chrome 中不工作

转载 作者:行者123 更新时间:2023-11-30 06:28:14 25 4
gpt4 key购买 nike

我正在尝试在我的 Web 应用程序上实现 CORS(跨域资源共享)。这是结构:

  • 站点 example.com:包含几个 JS 文件(jquery.js、myscript.js)
  • 站点 example2.com:从 example.com 加载两个脚本,然后从 myscript.js 调用一个函数,它向 example.com 发出 POST 请求

example2.com 代码类似于:

<script src="http://example.com/jquery.js" type="text/javascript"></script>
<script src="http://example.com/myscript.js" type="text/javascript"></script>
<script type="text/javascript">startFunction(1, 2)</script>

两个 JS 都在站点 B 上正常加载。但是,当调用该函数并执行 POST(标准 jQuery $.post)时,我收到以下错误:

XMLHttpRequest cannot load http://example.com/postrequest. Origin http://example2.com is not allowed by Access-Control-Allow-Origin.

我去了 example.com 服务器并像这样更新了 .htaccess:

Header set Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control"
Header add Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"

我检查了标题是否正在发送并且确实正在发送。使用Firefox访问example2.com,加载JS文件,POST请求成功。但是,如果我尝试对 Chrome 执行完全相同的操作,它仍然会失败。我已经处理这个问题几个小时了,但我仍然看不出这有什么问题。这是 Chrome 错误还是什么?

我必须指出,我检查了类似的问题并应用了一些解决方案,但没有成功。

更新:尝试添加此建议的解决方案:

$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader('Content-Type', 'text/plain');
}
});

确实设置了 Content-Type,但是同样的错误一直在发生,所以这并没有解决任何问题。

最佳答案

您的服务器设置如何?

不同系统之间是否有一些负载平衡或任何其他类型的请求处理?您使用的是 Apache、NGINX 等吗? (我想 Apache 是因为 htaccess?

因为在那种情况下,有些事情你必须要注意。

是否安装了 mod_header?

<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "*"
</IfModule>

在大多数情况下,不需要内容和方法类型。除非您使用的是选项请求。

尝试同时使用 Allow-Headers 规则。

请检查规则 Access-Control-Allow-Origin "*"在您的请求中是否只有一次。 (可能从应用程序发送或在 apache 配置中设置,例如 vhost?)

您能否发布请求 header ,包括。响应 header ?

(请使用 Chrome 开发工具、网络选项卡,然后使用 RAW(!) header )

关于javascript - CORS 在 Chrome 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19624114/

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