the access-control-allow-origin header contains multiple values but only one is allowed, Origin 'http://localhost:63342' is therefore notallowed access.

问题原因:配置了多个跨域,nginx配置了一层跨域,代码里又配置了一层跨域。导致header里面的数据重复。
解决方案:去掉其中一个跨域配置.
其他:不允许跨域访问并非是浏览器限制了发起跨站请求,而是跨站请求可以正常发起,但是返回结果被浏览器拦截了。
理解这一点是很重要的。最好的例子是 CSRF 跨站攻击原理,无论是否跨域请求都发送到了后端服务器!注意,有些浏览器不允许从 HTTPS 跨域访问 HTTP,比如 Chrome 和 Firefox,这些浏览器在请求还未发出的时候就会拦截请求,这是一个特例。
本文详细解析了跨域访问问题的根源,指出浏览器并非限制跨站请求的发起,而是会拦截返回结果。当配置了多层跨域设置,如nginx与代码中同时存在跨域配置时,会导致Access-Control-Allow-Origin头包含多个值,从而引发错误。文章提供了删除重复跨域配置的解决方案。
3万+





