我正在尝试使用EventSource,并且使用以下代码:
var source = new EventSource("demo_sse.php");
source.onmessage = function(event) {
document.getElementById("result").innerHTML += event.data + "<br>";以下是我的php:
<?php
header("Content-Type: text/event-stream");
header('Cache-Control: no-cache');
$time = date('r');
echo "data: The server time is: {$time}\n\n";
flush();
?>上述代码在本链接 of w3school中给出。但是我得到了这个错误:事件源的响应有一个MIME类型(“application/x”),而不是"text/event-stream“。中止连接。
有人知道为什么吗?我抄袭了w3school的所有东西。我找不出错误是什么?
发布于 2018-06-28 08:00:34
这意味着PHP首先发送默认的mime类型头。
我的第一个猜测是,在php脚本文件开头的utf8之前,您的php脚本文件中有一些空白(或者一个不可见的字符,比如一个<?php )。(见http://php.net/manual/en/function.header.php)
或者可能是它发送了一个错误消息?我建议在命令行中使用curl来调试它。(请参阅https://stackoverflow.com/a/49486869/841830)或者,使用浏览器中的web工具来深入了解正在发回的内容。
https://stackoverflow.com/questions/51056000
复制相似问题