当我在 JavaScript 中创建一个新的 EventSource
来监听服务器发送的事件时,如下所示:
var source = new EventSource("data/pushed");
有什么方法可以让我在传出的 HTTP 请求中指定额外的 header (比如一些身份验证 token )?
最佳答案
不,EventSource standard不像 XMLHttpRequest
那样包含 setRequestHeader
。
也不支持POST。但你确实有 cookies 。因此,在可行的情况下,我首选的身份验证 token 方法是让用户首先登录并创建 session ,然后该 session cookie 将与您的 SSE 请求一起传递。 (另外:如果使用 PHP,并使用 SSE session ,请记住它们是锁定的,因此您的 SSE 进程应在验证用户后立即调用 session_write_close()
。其他语言的 session 可能有类似的问题。)
我可以建议的唯一其他替代方法是使用 XMLHttpRequest
(即 Comet 方法)。
关于javascript - EventSource 连接中的自定义 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36201347/