【发布时间】:2016-09-08 16:16:10
【问题描述】:
我有一个网站,有一个单独的静态文件子域。我发现我需要设置 Access-Control-Allow-Origin 标头才能使某些 AJAX 功能正常工作,特别是字体。我希望能够从localhost 以及www 子域访问静态子域以进行测试。简单的解决方案似乎是Access-Control-Allow-Origin: *。我的服务器使用 nginx。
您可能不希望在响应标头中为Access-Control-Allow-Origin 使用通配符的主要原因是什么?
【问题讨论】:
-
这允许任何基于浏览器的脚本访问您的 URL,如果您不希望这样做,那么您不会使用它。
-
在stackoverflow.com/a/43154277/441757 上查看答案。唯一不想使用通配符的情况是防火墙后面的 Intranet 内的资源;也就是说,您无法使用 curl 或 Postman 或其他任何方式从任何地方访问的资源。如果您可以使用 curl 或 Postman 等从任何地方访问资源,那么没有理由避免使用通配符。将通配符与需要身份验证凭据的资源一起使用也很糟糕,但即使您尝试过,您也无法做到,因为 CORS 协议不允许这样做。
标签: http nginx http-headers cors