Я создал сценарий ASP со всеми заголовками, необходимыми для событий, отправленных сервером. Работает сценарий клиентской стороны. Я тестировал его с помощью PHP-скрипта, и он отлично работает. ASP-скрипт работает, и он возвращает ожидаемое сообщение, если вы вызываете его из строки URL-адреса, но когда javascript вызывает его, инспектор элементов возвращает данные как «undefined». Когда я устанавливаю точку останова на «открытый» прослушиватель событий, «e.data» «undefined».Server Sent Event и asp classic
По какой-то причине Javascript не принимает текст 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 :(
}
Спасибо!
Это может помочь, если вы вывесили код. Кроме того, если ваш скрипт asp работает, это звучит так, как будто это проблема с javascript, а не asp. – John
Привет, Джон, спасибо, что нашли время, чтобы помочь мне. Код ASP ниже. Я знаю, что код javascript работает, потому что он работает с моим PHP-скриптом. 'code' strResponse = strResponse & "данные:" & сейчас() Response.Buffer = истинная Response.Charset = "UTF-8" Response.ContentType = "текст/событие потока" response.AddHeader" content-Type "," text/event-stream; charset = UTF-8 " response.AddHeader" Cache-Control "," no-cache " response.AddHeader" Content-Length ", len (strResponse) ответ. AddHeader «Connection», «Keep-Alive» response.Write strResponse – AndreSites
, если в вашем коде, который заполняет 'strResponse', что-то еще не было, в нем не будет ничего, кроме« данных: », а текущее время - это все, что вы хотите это содержать? – John