我制作了一个ASP脚本,其中包含Server Sent Events所需的所有标头。 客户端脚本正在运行。我用PHP脚本测试它,它工作正常。 ASP脚本工作,如果从URL行调用它,它将返回预期的消息,但是当javascript调用它时,元素检查器将数据返回为“undefined”。 当我将断点设置为“open”事件监听器时,“e.data”是“未定义的”。
由于某种原因,Javascript不接受ASP脚本发送的UTF-8文本。
请帮帮我!!!
asp代码:
strResponse = strResponse & "data: " & now()
response.Buffer = true
response.CharSet = "utf-8"
response.ContentType="text/event-stream"
response.AddHeader "content-Type", "text/event-stream;charset=UTF-8"
response.AddHeader "Cache-Control", "no-cache"
response.AddHeader "Content-Length", len(strResponse)
response.AddHeader "Connection", "Keep-Alive"
response.Write strResponse
Javascript:
if (!!window.EventSource) {
var source = new EventSource('serversend.asp');
source.addEventListener('message', function (e) {
console.log(e.data);
}, false);
source.addEventListener('open', function (e) {
console.log("open " + e.data);
}, false);
source.addEventListener('error', function (e) {
if (e.readyState == EventSource.CLOSED) {
console.log(e.data);
}
}, false);
} else {
// something else :(
}
谢谢!
答案 0 :(得分:0)
尝试在Response.Flush
Response.Write
编辑*
在strResponse字符串后输入两个:
response.Write strResponse & vbCrLf & vbCrLf
答案 1 :(得分:0)
尝试这个工作
Response.Write("data: The server time is: " & now()) & chr(13) & chr(10) & chr(13) & chr(10)
Response.Flush()