我正在使用angular-websockets和node websockets,尽管这不应该产生太多差异。节点实现发送带有握手请求拒绝的X-WebSocket-Reject-Reason
报头(例如“无效的用户名”)。
如何通过websockets API或其他方式访问此标头?我没有充分探讨过这个问题,但$httpProvider
似乎无法拦截请求。
onError
,onClose
等回调也无济于事。
答案 0 :(得分:1)
您不能,因为浏览器的websocket API规范禁止它 见这里:http://www.w3.org/TR/websockets/#feedback-from-the-protocol
用户代理不得以允许脚本区分以下情况的方式向脚本传达任何失败信息:
...
未完成打开握手的服务器(例如,因为它不是WebSocket服务器)。
这意味着由于安全问题,浏览器不允许将websocket握手HTTP响应标头传递给javascript。