在location中使用 add_header 来配置支持跨域,配置如下:
add_header Access-Control-Allow-Origin *;
配置后正常的响应已经支持跨域,但是会发现当服务异常时(http状态码500)或者访问不存在的接口时(404)时浏览器仍然会报跨域的错误。
经分析原因是 add_header 默认仅支持特定的响应状态码,包括200, 201 (1.3.10), 204, 206, 301, 302, 303, 304, 307 (1.1.16, 1.0.13), 和308 (1.13.0)。
为了支持异常和404,需要使用 always 参数,修改后nginx配置如下:
add_header Access-Control-Allow-Origin * always;
再测试,对于404的响应也支持跨域请求了。
以上
-------------------------------------------------------------------------------------------------------------------
如果对您有帮助,感谢您的点赞支持,谢谢
-------------------------------------------------------------------------------------------------------------------
nginx add_header的官方文档为
http://nginx.org/en/docs/http/ngx_http_headers_module.html#add_header
,请参考。