gpt4 book ai didi

javascript - 对于 <script crossorigin ='anonymous' >,为什么脚本是 "blocked by CORS policy"?

转载 作者:技术小花猫 更新时间:2023-10-29 11:47:51 25 4
gpt4 key购买 nike

使用 Google Chrome 或 Firefox,如果我尝试加载以下 HTML:

<script crossorigin='anonymous' src='https://stackoverflow.com/foo.js'></script>

我收到这样的 CORS 错误:

Access to Script at 'https://stackoverflow.com/foo.js' from origin 'https://stackoverflow.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource...

但是,没有 crossorigin='anonymous' 属性的相同标签工作正常(当然会生成 404 错误,因为 foo.js 不存在)。

这很令人惊讶,因为anonymous 只是supposed to prevent sending any credentials和脚本标签 are not supposed to require CORS .这是什么原因造成的,我应该怎么办?

最佳答案

我有一段时间对此感到困惑。这是我现在的理解:

According to the W3Ccrossorigin 属性实际上有 三个 可能的值:anonymoususe-credentials 和一个“missing” value default”,只能通过省略该属性来访问。 (另一方面,空字符串映射到 anonymous。)默认值会导致浏览器完全跳过 CORS,这是我预期的正常行为。

crossorigin 属性只有在我们关心获取正在加载的脚本的错误信息时才应该使用。由于访问此信息需要 CORS 检查,因此 Access-Control-Allow-Origin header 必须出现在要加载的资源上。

关于javascript - 对于 &lt;script crossorigin ='anonymous' >,为什么脚本是 "blocked by CORS policy"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41069330/

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