Ich habe ein ASP-Skript mit allen Headern für Server gesendet Ereignisse erforderlich. Das clientseitige Skript funktioniert. Ich habe es mit einem PHP-Skript getestet und es funktioniert gut. Das ASP-Skript funktioniert und es gibt die erwartete Nachricht zurück, wenn Sie es aus der URL-Zeile aufrufen, aber wenn das JavaScript es aufruft, gibt der Elementinspektor die Daten als "undefined" zurück. Wenn ich den Haltepunkt auf den Ereignislistener "open" setze, ist "e.data" "undefined".Server gesendet Ereignis und asp classic
Aus irgendeinem Grund akzeptiert Javascript den UTF-8-Text, der vom ASP-Skript gesendet wird, nicht.
Hilf mir bitte !!!
Der ASP-Code:
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
Die 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 :(
}
Thank you!
Es könnte helfen, wenn Sie einen Code geschrieben. Auch, wenn Ihr Asp-Skript funktioniert, dann klingt es, als ob dies ein Javascript-Problem ist, anstatt ein asp-Skript. – John
Hallo @John, danke, dass du dir die Zeit genommen hast, mir zu helfen. Der ASP-Code ist unten. Ich weiß, dass der JavaScript-Code funktioniert, weil es mit meinem PHP-Skript funktioniert. 'code' strResponse = strResponse & "Daten:" & now() Response.Buffer = true Response.Charset = "utf-8" Response.ContentType = "text/Event-stream" Response.AddHeader" content-Type "," text/ereignisstrom; charset = UTF-8 " response.AddHeader" Cache-Steuerung "," no-cache " response.AddHeader" Inhaltslänge ", len (strResponse) Antwort. AddHeader "Verbindung", "Keep-Alive" response.Write strResponse – AndreSites
es sei denn, es gibt etwas früher in Ihrem Code, der 'strResponse' füllt es wird nichts anderes als" data: "und die aktuelle Zeit enthalten - ist das alles, was Sie wollen es enthalten? – John