Чтобы начать работу с EventSource
API, я написал самый схоластический пример. Проблема в том, что я всегда получаю сообщение об ошибке и не могу найти никакой полезной информации об этом. Когда я загружаю home.html
, сценарий JS останавливается на source.onerror
; Я печатаю его в консоли, но анализируя объект, я не могу найти какой-либо тип ошибки или сообщение, поэтому я понятия не имею, что это не так. Есть ли ошибка в коде? Может быть ошибка связана с сервером?
home.html
<body>
<div id="result"></div>
<script src="sse.js"></script>
</body>
sse.js
function isSseEnabled() {
return (typeof EventSource !== "undefined");
}
if (isSseEnabled()) {
var source = new EventSource('source.php');
source.onerror = function(e) {
console.log(e);
source.close();
};
source.onmessage = function (e) {
console.log(e.data);
document.getElementById('result').innerHTML += e.data.concat('<br>');
}
} else {
throw 'SSE not enabled';
}
source.php
<?php
header('Content-Type: text/event-stream');
header('Cache-control: no-cache');
$time = date('r');
echo "Time: $time";
flush();