【发布时间】:2014-05-03 21:00:07
【问题描述】:
我在 Chrome 中打开 websocket 时遇到问题。 chrome 中似乎有一些针对 websockets 的 CORS 策略。
如果我在 www.example.com 上并尝试在 api.example.com 打开 websocket,它会在控制台网络选项卡上显示挂起,并会触发 onerror 并显示消息 WebSocket connection to 'wss://api.example.com' failed: Connection closed before receiving a handshake response。如果我查看服务器,我没有看到对 Web 套接字连接的请求,因此没有选项请求可以响应,或者无法设置 Access-Control-Allow-Origin 标头。
但是,如果我首先向 api.example.com 发出请求,浏览器上的该请求会将我重定向回 www.example.com,它会正常工作。
chrome 中的 websocket 请求是否需要使用相同的来源?
注意:此问题仅适用于 chrome。
【问题讨论】:
-
根据这里的日期,这样的问题已经存在很长时间了,但我们今天在某些情况下在 Chrome 中重现了它,Chromium 团队声称这是最近的回归。在此处关注错误报告:crbug.com/993907
标签: javascript google-chrome websocket cors