跨域:The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed
2018-01-17 10:29:08
使用Ajax跨域请求资源,Nginx作为代理,出现:
The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed
错误。
服务端允许跨域配置:
#region 设置允许跨域,允许复杂请求
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE,PATCH,OPTIONS");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept, Authorization");
//HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
HttpContext.Current.Response.End();
#endregion
Nginx的配置:
add_header 'Access-Control-Allow-Origin' '*';
location / {
if ($request_method = 'OPTIONS') {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,PATCH,OPTIONS;
return 200;
proxy_pass http://xx:8002/;
#proxy_pass http://localhost:62249/;
}
看上面错误提示,contains multiple values "*" 意思就是设置了2次跨域,但是只有一个是允许的,移除其中的任意一个就好了。如果服务器设置了允许跨域,使用Nginx代理里面就不需要了(或者就不用使用Nginx了)
The
‘Access-Control-Allow-Origin’
header
contains
multiple
values
“*, *”, but only one is
allowed
.
通常我们的
跨
域
可以在三个地方解决
通过配置类在后台代码解决。还可以通过注解在接口上解决。
可以在业务网管层面解决。
可以在nginx层面解决。
以上的三种方式,假如用了两种。则会出现双重
跨
域
的异常错误。
如果知道在哪里用了两次
跨
域
的话,选择剔除一个地方也是可以的。假如在业务网关层统..
分析:当我们请求一个接口的时候,出现如:Access-Control-Allow-Origin 字眼的时候说明请求
跨
域
了。前端是vue,后端是springcloud,完全的前后端分离的项目,前端在向后端发送请求的时候出现如下的错误。把我工作中遇到的问题和解决的问题的过程记录下来,同时希望也可以帮到大家!文件,在该文件内新增配置。
报错内容:
Access to XMLHttpRequest at ‘http://www.z…n.com/api/login’
from origin ‘http://z…n.com’ has been blocked by CORS policy:
The
‘Access-Control-Allow-Origin’
header
contains
multiple
values
‘*, http://z…n.com’,
but only one is
allowed
.
已被CORS策略阻止:“
vue前端访问后台时报
The
‘Access-Control-Allow-Origin’
header
contains
multiple
values
’x, *’, but only one is
allowed
. 错误
这个是说Access-Control-Allow-Origin头检测到多个值,也就是
跨
域
重复配置了,比如你要通过好几个其他的服务才能调用的你想要的服务(网...
问题一:No ‘Access-Control-Allow-Origin’
header
is present on
the
requested resource.
跨
域
:在当前页面想要访问其他页面,主要端口、ip、协议有一个不一样就会被定义为
跨
域
;
在前后端分离的项目中,一个熟悉的场景:前端页面发送ajax请求给后端,后端返回json数据,前端拿到返回的数据进行响应的页面跳转以及数据的展示;
前端:http://front.smile.com:5500/login.html;页面发送ajax请求,给
跨
域
报错
The
'Access-Control-Allow-Origin'
header
contains
multiple
values
'
http://localhost:8080, *
'
, but only one is
allowed
. Origin
'
http://localhost:8080
'
is
the
refore not
allowed
access.
原因 可能是dja...
1. 原由本人是spring boot菜鸟,但是做测试框架后端需要使用Spring boot和前端对接,出现
跨
域
问题,需要设置后端Response的
Header
.走了不少坑,在这总结一下以备以后使用2. 使用场景浏览器默认不允许
跨
域
访问,包括我们平时ajax也是限制
跨
域
访问的。产生
跨
域
访问的情况主要是因为请求的发起者与请求的接受者1、
域
名不同;2、端口号不同3.解决方案通过设置Access-Con...
在解决
跨
域
问题时出现
The
‘Access-Control-Allow-Origin’
header
contains
multiple
values
‘*’, but only one is
allowed
.错误
原因是设置了相同的
跨
域
信息。查看响应头如下:
就是去除掉多次的
跨
域
配置,只保留一次。比如我自己配置了一个
跨
域
,然后使用renren-fast管理员项目时里面的config又配置有
跨
域
,所以我们需要把管理员项目里的
跨
域
配置注释掉即可。
跨
域
配置
@Configuration