Jos*_*son 6 javascript google-chrome websocket cors
我在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.
obe*_*tet 12
没有浏览器强制使用WebSocket的CORS.以下是可能出错的两件事(假设您同时使用HTTPS和WSS):
Origin.所述OriginHTTP标头是由浏览器到包含被打开WebSocket连接JavaScript的HTML页面的原点设置.服务器可以检查该标头并拒绝.但既然你说其他浏览器正在运行(哪个?),这是不太可能的wss,服务器证书必须完全有效,并且浏览器可以接受,而无需任何用户交互.是这样的吗?我又遇到了这个问题。我仍然没有弄清楚原因,但是OPTIONS首先向子域发出(或任何其他)请求允许打开连接。
这似乎只是 wss 连接的问题,并且已经在多个域和证书中出现。
| 归档时间: |
|
| 查看次数: |
13428 次 |
| 最近记录: |