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