html5 — ответ EventSource имеет тип MIME («application / x-httpd-php»), который не является «text / event-stream». Прерывание соединения

Я пытаюсь использовать 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.
Но я получил эту ошибку: Ответ EventSource имеет тип MIME («application / x-httpd-php»), который не является «text / event-stream». Прерывание соединения.

Кто-нибудь знает почему? Я скопировал все из w3school. Не могу узнать в чем ошибка?

2

Решение

Это означает, что PHP сначала отправляет заголовок MIME-типа по умолчанию.

Мое первое предположение было бы, что у вас есть некоторый пробел (или невидимый символ, такой как utf8 BOM) в вашем файле сценария php перед открытием <?php, (Увидеть http://php.net/manual/en/function.header.php)

Или это может быть то, что он отправляет обратно сообщение об ошибке? Я бы порекомендовал использовать curl из командной строки для его отладки. (Увидеть https://stackoverflow.com/a/49486869/841830) В качестве альтернативы можно использовать инструменты веб-разработчика в вашем браузере, чтобы узнать, что именно отправляется обратно.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]