CORS 错误

跨域资源共享 (CORS) 是一种允许服务器放宽同源策略的标准。它用于明确允许某些跨域请求,同时拒绝其他请求。例如,如果一个网站提供可嵌入服务,则可能需要放宽某些限制。设置这样的 CORS 配置不一定容易,并且可能会带来一些挑战。在这些页面中,我们将探讨一些常见的 CORS 错误消息以及如何解决它们。

如果 CORS 配置未正确设置,浏览器控制台将显示类似 "Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at [some site]" 的错误,表明请求因违反 CORS 安全规则而被阻止。但这不一定是设置错误。请求实际上可能被用户的 Web 应用程序和远程外部服务有意地禁止。但是,如果终结点应该可用,则需要进行一些调试才能成功。

识别 CORS 问题

要了解 CORS 配置的根本问题,您需要找出哪个请求有问题以及原因。这些步骤可能会帮助您做到这一点:

  1. 导航到有问题的网站或 Web 应用程序,然后打开开发者工具
  2. 现在尝试重现失败的事务并检查控制台,查看是否看到 CORS 违规错误消息。它可能看起来像这样:

Firefox console showing CORS error

错误消息的文本将类似于以下内容:

Cross-Origin Request Blocked: The Same Origin Policy disallows
reading the remote resource at https://some-url-here. (Reason:
additional information here).

注意:出于安全原因,有关 CORS 请求出了什么具体问题的信息不适用于 JavaScript 代码。代码只知道发生了错误。确定具体出了什么问题的唯一方法是查看浏览器控制台以获取详细信息。

CORS 错误消息

当请求因 CORS 失败时,Firefox 的控制台会在其控制台中显示消息。错误文本的一部分是“原因”消息,它提供了对出了什么问题的额外见解。原因消息如下所示;单击消息以打开一篇文章,该文章更详细地解释了错误并提供了可能的解决方案。

另见