Reason: CORS header 'Access-Control-Allow-Origin' missing

原因

原因:缺少CORS “Access-Control-Allow-Origin”

哪里出错了?

对 CORS 请求的响应缺少必需的Access-Control-Allow-Origin头,其用于确定在当前源内操作的资源是否可以访问。

如果服务器在您的控制之下,请将请求站点的源添加到允许访问的域集,方法是将其添加到Access-Control-Allow-Origin头的值。

例如,要允许https://amazing.site上的站点使用CORS访问资源,这个http头应该为:

Access-Control-Allow-Origin: https://amazing.site

您还可以使用"*"通配符配置站点使得允许任何站点访问它。您应该只将它用于公共的API。私有API永远不应使用"*",而应设置特定的一个域或一些域。此外,通配符仅适用于将crossorigin 属性设置为"c"的请求。

Access-Control-Allow-Origin: *

警告: 使用通配符允许所有站点访问私有API是显而易见的坏主意。

例如,在Apache服务器中,将下面一行添加到服务器的配置中(在相应的<Directory>,<Location>,<Files>或<VirtualHost>部分中)。 配置通常位于.conf文件中(httpd.conf和apache.conf是这些文件的通用名称),或者位于.htaccess文件中。

Header set Access-Control-Allow-Origin 'origin-list'

对于Nginx,设置此http头的命令是:

add_header 'Access-Control-Allow-Origin' 'origin-list'

See also

文档标签和贡献者

标签: 
此页面的贡献者: zhangchen, coderyyx
最后编辑者: zhangchen,