站点图标 星露谷值班站长

Nginx 配置add_header不生效解决办法

遇到一个项目,产生了跨域问题,因为这种问题很好解决,只要在 nginx 上面配置允许跨域即可,但是却遇到了 add_header 不生效的问题。

nginx 配置如下

add_header Access-Control-Allow-Origin * always;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods PUT,POST,GET,DELETE,OPTIONS;

用 curl 发送请求,发现返回没有 Access-Control-Allow-Origin: *

后端返回状态码 415,这个状态码属于是 hearder 头问题,属于前后端交互问题,暂时不管。
后经查阅资料发现,Nginx add_header 只对 200,201,204,206,301,302,303,304,307 这些状态码生效,对于 401 405 403 这些状态码是不生效的。

解决办法:

add_header Access-Control-Allow-Origin * always;

添加: always

参数没有生效的原因就是因为状态码是 415 导致 Nginx 没有添加跨域参数,加上 always 参数后,无论状态码如何都会生效.

问题解决.

退出移动版