Nginx出现双跨域问题解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx出现双跨域问题解决相关的知识,希望对你有一定的参考价值。

nginx作为代理,出现:The ‘Access-Control-Allow-Origin‘ header contains multiple values ‘, ‘, but only one is allowed 错误。

服务器端允许跨域

location / {
add_header ‘Access-Control-Allow-Origin‘ $http_origin;
add_header ‘Access-Control-Allow-Credentials‘ ‘true‘;
add_header ‘Access-Control-Allow-Methods‘ ‘GET, POST, OPTIONS‘;
add_header ‘Access-Control-Allow-Headers‘ ‘DNT,web-token,app-token,Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range‘;
add_header ‘Access-Control-Expose-Headers‘ ‘Content-Length,Content-Range‘;
if ($request_method = ‘OPTIONS‘) {
add_header ‘Access-Control-Max-Age‘ 1728000;
add_header ‘Content-Type‘ ‘text/plain; charset=utf-8‘;
add_header ‘Content-Length‘ 0;
return 204;
}

报错处理

看上面错误提示,contains multiple values "*" 意思就是设置了2次跨域,我们这边是我在nginx里面设置了跨域,开发在程序里面也设置了跨域处理,但是只有一个是允许的,移除其中的任意一个就好了。如果服务器设置了允许跨域,使用Nginx代理里面就不需要设置跨域了。

以上是关于Nginx出现双跨域问题解决的主要内容,如果未能解决你的问题,请参考以下文章

Nginx----跨域,防盗链

Nginx 反向代理解决浏览器跨域问题

如何搞定前端资源服务跨域问题之nginx篇

一次nginx 502问题排查和解决

让你搞懂如何通过Nginx来解决跨域问题

iOS解决跨域问题