我正在尝试发送多个标题
add_header Access-Control-Allow-Origin http://dev.anuary.com; add_header Access-Control-Allow-Origin https://dev.anuary.com;
但是,相反NGINX使他们进入
Access-Control-Allow-Origin: http://dev.anuary.com, https://dev.anuary.com
有什么解决scheme?
那么,是的,Nginx正在组合相同名称的标题..但它是这样做符合HTTP规范。 参见4.2节 。
标题:
Access-Control-Allow-Origin: http://dev.anuary.com, https://dev.anuary.com
根据HTTP / 1.1规范,在function上等同于:
Access-Control-Allow-Origin: http://dev.anuary.com Access-Control-Allow-Origin: https://dev.anuary.com
如果您的系统或应用程序能够读取一种格式而不是另一种格式,那就是问题所在。 nginx是做对了。
编辑 :
Mozilla文档指出,只能有一个Access-Control-Allow-Origin
标题。
它的格式( 见这里 )应该是一个以空格分隔的起源列表:
add_header Access-Control-Allow-Origin "http://dev.anuary.com https://dev.anuary.com";
但是,真的,你应该回应客户端提供的Origin
头,而不是生成一个蓝色的。 这可能更合适:
if ($http_origin ~* "^https?://dev\.anuary\.com$" ) { add_header Access-Control-Allow-Origin $http_origin; }
我面临着同样的问题,因为我的networking中的多个子域试图访问资源, nginx
没有正确设置。 这是我如何修复它。
add_header Access-Control-Allow-Origin https://*.your-domain-name.com;
我希望这有帮助。