nginx配置跨域无效!

之前项目(前后端分离)是在apache服务器上 验证码和获取数据一切都正常!

后来切换成nginx服务器 结果图形验证码死活是不能验证!但是获取数据和提交数据是没毛病的!

之后就在服务器配置中配置

add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;

配置完毕之后别说验证码了 就连获取数据都提示

Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains multiple values 'http://localhost:9080, *', but only one is allowed. Origin 'http://localhost:9080' is therefore not allowed access.

有什么办法解决吗????

阅读 10k
6 个回答
nginx配置了Access-Control-Allow-Origin
那么你就把代码中Access-Control-Allow-Origin去掉(删除)
这明显重复了啊

提示不都写清楚了么, Allow-Origin 那个不允许多值。

Access-Control-Allow-Origin: *

表示你已经设为该资源所有域名都可访问,不必去用nginx代理跨域了,直接请求就行

建议翻译错误提示,说的很清楚,Access-Control-Allow-Origin只允许一个值

谢邀,说下我的观点。
报错提示的问题早先几楼说的很明白了,不再赘述。Apache配置能跑但Nginx卡住,我觉得首先应该还是比较下两份配置的异同,而不是把重点放在跨域上(除非你确定是跨域的问题)。另外就算真的跨域,我觉得用代理解决会比加跨域头来的更舒服吧。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题