相关文章推荐
捣蛋的凉茶  ·  python - Alamofire 5 ...·  1 年前    · 
逼格高的牛腩  ·  elasticsearch - 在 ...·  1 年前    · 
跨域: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