如何在没有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。你说得对,我刚才做的就是这样,而且效果很好: