【问题解决】'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed.

问题复述

今天项目组有人找我说之前部署的程序在测试环境没问题,到生产环境出现了奇怪的问题,点按钮没反应。

我通过腾讯会议发现他们的浏览器控制台上打出了如下错误:

Access to XMLHttpRequest at 'https://aaa.bbb.ccc' from origin 'https://ddd.bbb.ccc' has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed.

很奇怪,CORS 相关的一般是跨域问题啊,怎么会这样呢?我注意到一点异常如下图,竟然设置了2次重复的跨域响应头!

问题解决

在根据错误查到原因就是 Access-Control-Allow-Origin 响应头重复设置导致跨域设置失败,去掉其中一个就可以了。

找到那个项目的主程,问他是不是在代码中添加了解决跨域的响应头,回复是肯定的。他的代码如下:

现在正在上线,改代码肯定不现实了,改下Nginx的配置吧,如下注释掉两行配置并reload,问题得以解决。

本次就分享这些,我是Hellxz,我们下次再见。

posted @ 2022-04-29 20:40  东北小狐狸  阅读(8085)  评论(0编辑  收藏  举报