我正在开发一个脚本,帮助在客户端跟踪404错误页面(使用JavaScript)。我搜索了相同的教程/帖子,但没有找到对我有帮助。
在服务器端使用curl(PHP)提到的一篇文章&将用户重定向到自定义404页面。但这并没有解决我的问题(我想在客户端)。
这个page提到了如何创建一个http对象,打开一个连接&以这种方式检测其状态:
var request = makeHttpObject();
request.open("GET", "your_url", true);
request.send(null);
....
if( request.status == 404 )
print("404 error")
但是在这里我们自己正在制作http请求&因此可以访问该对象。我的目标是从浏览器发送的请求中检测任何404页面错误(由于用户导航)。
我们可以监控浏览器的http对象的响应状态吗? Firebug的网络分析功能如何访问http标头?我可以在我的脚本中复制它吗?
我注意到浏览器的开发人员工具的控制台为丢失的页面以及该页面上的图像等单个元素提供了404错误。
这些是我能想象到的可能解决方案:
监控浏览器发送的每个http请求的response.status
使用开发人员工具/浏览器的错误通知使用“API”跟踪404错误,以提取工具的错误通知(如果存在)
非常感谢
答案 0 :(得分:0)
你的意思是这样的吗?
function returnStatus(req, status) {
//console.log(req);
if(status == 404) {
console.log("The url returned status code " + status);
}
else {
console.log("success");
}
}
function fetchStatus(address) {
var client = new XMLHttpRequest();
client.onreadystatechange = function() {
// in case of network errors this might not give reliable results
if(this.readyState == 4)
returnStatus(this, this.status);
}
client.open("HEAD", address);
client.send();
}
fetchStatus("http://yoururl.com");