mik*_*a34 12 javascript php html5
我尝试使用一个小例子使用EventSource对象
客户端,我有这个脚本的页面:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Welcome!</title>
</head>
<body>
<div id="result"></div>
<script type="text/javascript">
var sse = new EventSource('event-source.php');
sse.onmessage = function(event) {
console.log(event.data);
document.getElementById("result").innerHTML+=event.data + "<br>";
}
sse.onerror = function(event) {
console.log(event);
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
脚本在服务器上调用event-source.php.这是event-source.php:
<?php
header('Content-type: text/event-stream');
echo 'data: '.time().PHP_EOL;
Run Code Online (Sandbox Code Playgroud)
当我在Firefox上尝试这种配置时,方法"onmessage"被很好地调用,但不是Chrome.当我把"onerror"方法,它似乎被调用但我看不到错误原因.
我该怎么办 ?
jav*_*web -1
在onmessage
您调用想要的对象属性时,为什么不在 中执行相同的操作onerror
?
我认为你的onerror
应该是这样的:
sse.onerror = function(event) {
console.log(event.message);
}
Run Code Online (Sandbox Code Playgroud)
说明: https: //developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_events - 此链接显示“当出现问题时 (...),会生成错误事件。”
因此,当自定义错误处理时,您应该了解ErrorEvent结构:) 它是这样的:
更多信息和来源:https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent