有一个跨域问题请求解答!
在点击登录按钮时,登录失败,遇到了一个如下的跨域问题。
百度了一下,has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header contains multiple values 'http://localhost:8001, *', but only one is allowed. 这句话的意思是Access-Control-Allow-Origin有重复的,然后看请求和响应参数里,确实是重复的。如下图所示。
但是我找不到为啥会设置重复了,希望能帮忙分析一下。
前后端分离的项目,只启动了nocas和gateway网关服务和登录服务。gateway网关服务配置了全局跨域,登录服务把之前的跨域配置给注释了,按理来讲应该不会再报这个错了吧。如下图所示。
后来怀疑其他地方也有这个配置,就全局搜了一下,发现renren-fast这个框架里面Oauth2也有个地方配了一下Access-Control-Allow-Origin,就也给注释了先。但是依然是这个报错。
无论前端开不开启跨域配置,依然是报这个错误。
流程上,前端vue登录请求到网关,网关转发给登录服务,对登录服务的登录接口debug,代码也进来了,所以证明网关服务转发没问题。奇怪的是,既然进来了,为啥还会报跨域的错误。另外,debug看响应后的response请求,里面也只有一个Access-Control-Allow-Origin: *,不知道另一个Access-Control-Allow-Origin: http://localhost:8001是怎么来的,如下图所示,希望有知道的可以解答一下。
前端在收到这个请求,就直接报了一个网络错误。