如何在没有JQuery的情况下捕获JavaScript中的空响应错误?
我正在开发聊天应用程序,使用如何在没有JQuery的情况下捕获JavaScript中的空响应错误?,javascript,long-polling,Javascript,Long Polling,我正在开发聊天应用程序,使用长轮询技术进行实时更新,但在“轮询”请求几分钟后,我收到以下错误: net::ERR\u EMPTY\u响应 正如我所读到的,如果请求等待的时间太长,那么它会响应一个空响应,现在我希望在发生这种情况时被注意到,这样我就可以向服务器重新发送另一个请求 这是我的密码: client.js: function httpMsgRequest(counter,callback){ var httpRequest = new XMLHttpRequest();
长轮询
技术进行实时更新,但在“轮询”请求几分钟后,我收到以下错误:
net::ERR\u EMPTY\u响应
正如我所读到的,如果请求等待的时间太长,那么它会响应一个空响应,现在我希望在发生这种情况时被注意到,这样我就可以向服务器重新发送另一个请求
这是我的密码:
client.js
:
function httpMsgRequest(counter,callback){
var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function () {
if (httpRequest.readyState === 4) { // request is done
if (httpRequest.status === 200) { // successfully
callback(httpRequest.responseText); // we're calling our method
}
}
};
httpRequest.open('GET', "http://localhost:8080/messages?counter=" + counter);
httpRequest.send();
}
function msgPoll() {
try{
httpMsgRequest(counter,function(res){
//callback body
msgPoll();
});
}catch{
msgPoll();
}
}
msgPoll();
我试图像上面那样添加
try-catch
,但没有解决问题。有人有什么想法可以帮忙吗?提前感谢。您在哪里处理正常的服务器应答?一旦你能回答这个问题,你就可以处理这个错误了。@NathanP。感谢您的回复,我试图为status=200的条件添加else,在我调用的else中,msgPoll()函数现在确实发送了一个新的轮询请求,但错误仍然出现在控制台中,我如何防止它出现?我想您不能,它来自浏览器。@NathanP。你说得对,我刚才做的就是这样,而且效果很好: