如何通过JavaScript列出404资源错误?

时间:2014-12-23 09:18:04

标签: javascript logging http-status-code-404 firebug

我可能在这里有一些有趣的线索......

事实是我目前在某个网站上,我无法访问“medias”服务器。因此,它的日志没有任何线索,也无法获取记录的404错误。

测试时,我确实有一些与一些CSS内容或其他相关的404错误。 Firebug可以很好地显示它们,但我现在想在客户端登录它们。

我在JavaScript中尝试了一个巨大的解决方法,通过AJAX返回相应的标头,到目前为止,这排除了CSS样式表的所有背景属性。

这些问题仍然存在:

  • 有没有办法捕获Firebug网络输出?

  • 或者有一种简单的方法可以通过JavaScript或其他有创意的聪明解决方案来实现这一目标吗?

2 个答案:

答案 0 :(得分:0)

如果您对资源进行XMLHttpRequest,则应该为您提供响应标头。 200例如找到时,404则不是。

您确实需要知道和测试所有资源。

考虑以下代码:

var request = new XMLHttpRequest;
request.onreadystatechange = readyStateXML;
request.open("get", url, true);
request.send(null);

function readyStateXML()
{
    if (this.readyState == 4)
    {
        //404 or 400, not found error
        if (this.status == "400" || this.status == "404")
        {
            console.log("404: The requested page isn't found.");
        }
        else if(this.status == "500")
        {
            console.log("500: Internal server error.");
        }
    }
}

答案 1 :(得分:0)

Firebug uses internal Firefox APIs获取HTTP request information,包括响应的HTTP状态代码。 此信息仅适用于具有特定权限的代码,并且会向页面本身公开。因此,如果您想访问您的网页所做的所有请求的状态代码,您需要为浏览器编写扩展程序。

对于您在JavaScript中执行的AJAX请求,您可以通过status property of the XMLHttpRequest获取其HTTP状态。

function makeRequest(url) {
  var req = new XMLHttpRequest();
  req.onreadystatechange = function logStateChange() {
    if (req.readyState === 4) {
      // 'req.status' contains the HTTP status code of the response
      console.log(req.status);
    }
  }

  req.open('GET', url);
  req.send();
}