如果服务返回错误,则Nginx服务将无法处理跨域请求

我正在我的networking应用程序中提出一个跨域请求。

我在Nginx上设置了CORS头文件。 一切工作正常,除非当服务返回像404,400,500等错误,而不是接收错误代码,该服务失败,说错误的Origin *********** is not allowed by Access-Control-Allow-Origin

任何想法,为什么这可能会发生?

这是nginx设置的样子;

 location /api { add_header Access-Control-Allow-Origin *; } 

不幸的是, add_header不能使用add_header或304以外的状态代码。你可以在这里的文档中find它。

你可以使用这个插件来做你想做的事情:

http://wiki.nginx.org/NginxHttpHeadersMoreModule

我可以确认headers_more模块(在这个答案中提到)可以用来为所有HTTP响应添加标题,而不pipe状态码如何。

注意:您可能需要在https://github.com/openresty/headers-more-nginx-module/issues/24上使用变通方法,在Windows上使用Nginx构build此模块,但编译后的工作方式与预期一致。