服务器 returns 错误时如何使 nginx CORS 配置工作?

How to make nginx CORS configuration work when server returns error?

我想将 CORS 添加到我的服务器。

我的nginx是这样配置的:https://michielkalkman.com/snippets/nginx-cors-open-configuration.html

当服务器returns 200时似乎工作正常。 但是,如果服务器 returns 其他内容,例如请求错误时为 400,或者如果内部错误为 500,浏览器将显示 No 'Access-Control-Allow-Origin' header 而不是像它应该的那样到达错误处理程序。

我缺少什么配置才能让它工作?

之前已经回答过:https://serverfault.com/questions/431274/nginx-services-fails-for-cross-domain-requests-if-the-service-returns-error

add-header 不适用于 HTTP 错误,但可选的 headers_more 模块可用于解决此限制。

从版本 1.7.5 开始,您可以使用 always 关键字来 return headers 而不管响应代码:

add_header 'Access-Control-Allow-Origin' '*' always;

http://nginx.org/en/docs/http/ngx_http_headers_module.html#add_header