我正在编写一个小应用程序,用于监控几个网站的状态,主要是报告哪些网站在线以及哪些网站处于离线状态。
我目前将此代码作为 onreadystatechange 函数:
if(xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
element(id).innerHTML = "Online";
}
else {
element(id).innerHTML = "Offline";
}
}
当网站在线时它正常运行,但如果我在离线网站上发出AJAX请求,它就永远不会到达'else'块。我认为如果网站关闭,请求永远不会到达readyState 4 ?
有关如何将AJAX请求捕获到离线网站的任何建议吗?
答案 0 :(得分:1)
您要做的是在特定时间后中止请求,即超时。这篇文章应该有所帮助:
答案 1 :(得分:1)
IE8的XHR对象支持ontimeout事件(http://msdn.microsoft.com/en-us/library/cc197061(VS.85).aspx)
ReadyState = 4表示“已加载”,如果内容未加载,则不会发生。
答案 2 :(得分:0)
我刚刚使用Fiddler进行了测试,并返回状态502,正文512
答案 3 :(得分:-1)
您可以检查标头是否有404错误。