EventSource 连接中的自定义标头

Jea*_*let 3 javascript http custom-headers server-sent-events

当我EventSource在 JavaScript 中创建一个 new来侦听服务器发送的事件时,如下所示:

var source = new EventSource("data/pushed");
Run Code Online (Sandbox Code Playgroud)

有什么方法可以让我在传出的 HTTP 请求中指定额外的标头(比如一些身份验证令牌)?

Dar*_*ook 5

不,EventSource 标准不包括setRequestHeader这种方式XMLHttpRequest。

它也不支持 POST。但你确实有饼干。因此,在可行的情况下,我首选的身份验证令牌方法是让用户首先登录并创建一个会话,然后该会话 cookie 将与您的 SSE 请求一起传递。(另外:如果使用 PHP,并且使用 SSE 会话,请记住它们是锁定的,因此您的 SSE 进程应该session_write_close()在验证用户后立即调用。其他语言的会话可能有类似的问题。)

我可以建议的唯一其他选择是使用XMLHttpRequest(即彗星方法)。