我没有在Access-Control-Allow-Origin中使用通配符,但Chrome说我是

时间:2018-02-27 17:07:11

标签: javascript google-chrome cors

我在端口8080上使用离子发球器运行离子应用。我确实理解预检过程,我相信我得到了正确的回应:

The request

但是,我收到了这个错误:

无法加载https://bla.bla:对预检请求的响应未通过访问控制检查:' Access-Control-Allow-Origin'响应中的标题不能是通配符' *'当请求的凭据模式为' include'时。起源' http://localhost:8080'因此不允许访问。 XMLHttpRequest发起的请求的凭证模式由withCredentials属性控制。

然后,没有发送真实请求(GET)。 更奇怪的是,在这一个请求之前,我能够将POST发送到同一个服务器。响应头是相同的。请求的唯一区别是Access-Control-Request-Headers是内容类型而不是身份验证

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

终于找到了答案,这是我的错,而不是铬虫。

事情是,前段时间我尝试使用此扩展程序: https://chrome.google.com/webstore/detail/cors-toggle/jioikioepegflmdnbocfhgmpmopmjkim?hl=en

它不能满足我的需求,但我忘了将它安装好。事实证明它存在某种冲突,因为它似乎为每个响应添加了“Access-Control-Allow-Origin:*”标头。因此,它会在带有凭证的请求中发生冲突(我猜测验证头就是这样,不知道为什么会这样)。

无论如何,在我卸载它之后,它现在正常工作。