事件源的响应具有未"text/event-stream" 的 MIME 类型 ("application/x-httpd-php" )。中止连接



我正在尝试使用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}nn";
flush();
?>

上面的代码是在w3school的这个链接中给出的。 但是我得到了这个错误:EventSource的响应具有MIME类型("application/x-httpd-php"(,而不是"text/event-stream"。中止连接。

有人知道为什么吗?我从w3school复制了所有内容。我无法找出错误是什么?

这意味着 PHP 首先发送默认的 mime 类型标头。

我的第一个猜测是,在打开<?php之前,您的 php 脚本文件中有一些空格(或不可见的字符,如 utf8 BOM(。(见 http://php.net/manual/en/function.header.php(

或者可能是它发回了错误消息?我建议从命令行使用 curl 来调试它。(见 https://stackoverflow.com/a/49486869/841830( 或者,使用浏览器中的 Web 开发人员工具准确了解发回的内容。

最新更新