EventSource的响应具有不是“文本/事件流”的MIME类型(“ application / x-httpd-php”)。中止连接

时间:2018-06-27 06:32:20

标签: php html5 eventsource

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

上面的代码在w3school的link中给出。 但是我遇到了这个错误:EventSource的响应具有一个不是“ text / event-stream”的MIME类型(“ application / x-httpd-php”)。中止连接。

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

1 个答案:

答案 0 :(得分:1)

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

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

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