CORS errors

Cross-Origin Resource Sharing (CORS) 是一种允许服务器放宽同源策略的标准。这用于明确允许一些跨源请求,同时拒绝其他请求。例如,如果站点提供外界嵌入的服务,则可能需要放宽同源策略(same-origin policy)。设置这样的 CORS 配置并不一定容易,并且可能存在一些挑战。在这些页面中,我们将研究一些常见的 CORS 错误消息以及如何解决它们。

如果未正确设置 CORS 配置,浏览器控制台将显示错误,例如"Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at $somesite"(跨源请求已阻止:同源策略禁止在某些站点上读取远程资源”),表示请求因违反 CORS 安全性而被阻止规则。但这可能不一定是设置错误。因为用户的 Web 应用程序和远程外部服务可能故意禁止该请求。如果要使端点可用,则需要进行一些调试才能成功。

确定问题

要了解 CORS 配置的基本问题,您需要找出哪个请求有问题以及原因。步骤如下:

  1. 打开有问题的网站并打开开发者工具(Developer Tools)。
  2. 尝试重现失败的事务并检查控制台( console)是否看到 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).

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

CORS 错误信息

参见