nginx配置允许跨域
add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; add_header Access-Control-Allow-Headers 'token,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
如果加上了配置还不可以,就确认下,请求方法和headers是否在条件中,没有的话就在Methods或者Headers添加。(比如:遇到过一次,不允许token跨域,就在Headers中添加了token)
还有一种情况配置了跨域还是不生效,我之前刚好测试的时候,随便测了个本地绑host的地址,懒得没弄文件,就是个404的页面。这就出问题了。。。。。。。。。。怎么配置都是无法跨域。鼓捣了很久,终于查到了原因
当状态码是 200,201,204,206,301,302,303,304,307 时nginx会添加header,而 401、404、500,都没有添加header。由于 Access-Control-Allow-Origin * 选项未生效,导致返回的response header里面没有允许跨域请求的选项,怎么解决呢:
add_header Access-Control-Allow-Origin *; 后面添加always,变为:
add_header Access-Control-Allow-Origin * always;