EventSource连接中的自定义标头

时间:2016-03-24 13:27:52

标签: javascript http server-sent-events custom-headers

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

var source = new EventSource("data/pushed");

有没有办法在传出的HTTP请求中指定其他标头(如某些身份验证令牌)?

2 个答案:

答案 0 :(得分:3)

不,EventSource standard不包括setRequestHeader XMLHttpRequest的方式。

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

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

答案 1 :(得分:0)

我们有类似的问题,我们最终决定通过URL发送我们的授权令牌而不用担心安全性,因为它将受到SSL的保护(在生产中,当然,我们使用HTTPS协议)。