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

时间:2015-01-26 23:53:53

标签: nginx cors

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

我根据这个配置了我的nginx:https://michielkalkman.com/snippets/nginx-cors-open-configuration.html

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

我缺少哪些配置才能使其正常工作?

2 个答案:

答案 0 :(得分:4)

从1.7.5版开始,无论响应代码如何,都可以使用Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.3", GitCommit:"2bba0127d85d5a46ab4b778548be28623b32d0b0", GitTreeState:"clean", BuildDate:"2018-05-21T09:17:39Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"windows/amd64"} Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.3", GitCommit:"2bba0127d85d5a46ab4b778548be28623b32d0b0", GitTreeState:"clean", BuildDate:"2018-05-21T09:05:37Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"} 关键字返回标头:

always

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

答案 1 :(得分:3)

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

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