遇到一个项目,产生了跨域问题,因为这种问题很好解决,只要在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参数后,无论状态码如何都会生效.

问题解决.

欢迎留言