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

How to list 404 ressources error via JavaScript?

本文关键字:资源 错误 列出 何通过 JavaScript      更新时间:2023-09-26

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

事实是我目前在某个网站上,我无法访问"媒体"服务器。 因此在其日志上没有任何线索,也无法获得记录的 404 错误。

在测试时,我有时会遇到与某些 CSS 内容或其他内容相关的 404 错误。Firebug 在显示它们方面做得很好,但我现在想将它们记录在客户端。

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

这些问题仍然存在:

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

  • 或者有没有一种简单的方法可以通过JavaScript或其他创造性的聪明解决方案来做到这一点?

Firebug 使用内部 Firefox API 来获取 HTTP 请求信息,包括响应的 HTTP 状态代码。此信息仅可用于具有特定权限的代码,不会向页面本身公开。因此,如果您想访问页面发出的所有请求的状态代码,则需要为浏览器编写扩展程序。

对于您在 JavaScript 中执行的 AJAX 请求,您可以通过 XMLHttpRequeststatus 属性获取它们的 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();
}
如果你对

资源进行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.");
        }
    }
}