我有以下Eventsource。
var source = new EventSource('/events');
source.onmessage = function(e) {
document.body.innerHTML += e.data + '<br>';
};
问题是,Accept请求标头自动设置为text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
。
在node.js中,我正在使用以下条件处理请求。
if (req.headers.accept && req.headers.accept != 'text/event-stream') {..}
因为我无法传输数据。 请告诉我如何在调用EventSource('/ events')时将接受请求标头设置为text / event-stream;
答案 0 :(得分:1)
你为什么不这样做:
if(req.url == '/events'){
res.writeHead(200,{'content-type':'text/event-stream'});
//Your sse code here...
sendMsg('some data...');
}
它更直接,您不再需要处理请求标头问题。
答案 1 :(得分:0)
一个EventSource对象在Chrome,Firefox和Opera下使用“text / event-stream”接受标头发出请求 检查,您正在处理正确的请求