nginx 200请求正常,403 500请求报跨域问题的处理

今天遇到一个非常奇怪的问题,为了避免每个项目单独配置跨域,nginx端统一对所有请求添加了三个跨域头,如下图
在这里插入图片描述

奇怪的问题出现了:正常的响应,也就是200状态,是可以正常被浏览器解析的,不存在跨域问题:
在这里插入图片描述

但是,一旦出现403,500这种非正常响应,三个响应头就消失了,同时浏览器也出现跨域提示:
在这里插入图片描述
在这里插入图片描述


问题查找了很久,定位问题的波折就不说了,直接说结论:nginx的add_header方法只会为200, 201, 204, 206, 301, 302, 303, 304, 307, 308 这几种请求添加指定header,常见的403 500并不在这范围之内!

解决方案也简单,在相应条目add_header的最后机上always就可以了,如下:

add_header Access-Control-Allow-Origin * always;

附上官方文档:
http://nginx.org/en/docs/http/ngx_http_headers_module.html#add_header
在这里插入图片描述


版权声明:本文为u012760435原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>