解决Access-Control-Allow-Origin跨域的问题
header contains multiple values’x, *’, but only one is allowed.
vue前端访问后台时报The ‘Access-Control-Allow-Origin’ header contains multiple values’x, *’, but only one is allowed. 错误。
这个是说Access-Control-Allow-Origin头检测到多个值,也就是跨域重复配置了。比如你要通过好几个其他的服务才能调用的你想要的服务(网关服务---->UC服务----->XX服务),要是每个服务都配置了跨域,或是服务里重复定义了跨域,就可能出现这个问题。
随后检查发现,我本地使用的apache的httpd.conf文件中里面已经配置过了,允许所有请求跨域访问:
关于设置apache允许跨域访问,请参见我的另一篇文章:Apache下配置跨域的方法(允许该域下文件被其他域访问)
# 配置允许所有域名跨域
<IfModule mod_headers.c>
Header add Access-Control-Allow-Origin: *
</IfModule>
而我又在uploadimg-multiple.php文件中重复配置了允许跨域的header:
header('Access-Control-Allow-Origin:*');
导致允许跨域配置冲突,导致了这个问题。所以将PHP文件中的注释掉即可解决。等待真正部署的时候,再酌情进行添加。