这是代码P.S: s10中的服务httpd已停止
try {
var source = new EventSource("http://s10/server.php");
console.log(source);
} catch (e) {
console.log("ADSfasfasfasdfasdfas" + e)
}这是控制台:

为什么尝试捕捉不到错误??
当然,我有onerror事件和onclose事件:
source.addEventListener('error', function(e) {
if (source.readyState == 2) {
connectionClosed();//to change some style
console.log("Disconnected");
}
}, false);
source.onerror = function(e) {
if (source.readyState != 0) {
connectionClosed();//to change some style
console.log("Disconnected");
}
};
source.onclose = function() {
connectionClosed();//to change some style
console.log('Connection closed');
}发布于 2018-01-31 17:57:10
当我在控制台中运行的任意URL上没有设置为处理SourceEvents时,控制台成功地记录了一个SourceEvent实例。这和你所描述的很相似。

所以我猜这里没有错误需要捕捉。即使没有实际的连接,SourceEvent实例也是成功构建的。如果要检测连接是否工作,请使用EventSource.readyState属性。
在我的屏幕截图中,您可以看到readyState = 0,这意味着连接正在“连接”,但实际上它永远不会完成连接,因为另一端的服务器没有设置为处理SourceEvents。
https://developer.mozilla.org/en-US/docs/Web/API/EventSource/readyState
发布于 2021-04-17 07:18:05
我在测试同样的东西,onerror并没有提供真正有用的信息。例如,如果关闭服务器或在客户端连接时发送空响应,则无法在客户端以编程方式检测特定原因,我可以看到,只检查dev控制台即可。
https://stackoverflow.com/questions/18866924
复制相似问题