繁体   English   中英

XHR捕获404错误

[英]Catch 404 error with XHR

我为一个项目创建了一个小的javascript库,在这个库中我有一个函数可以检测我们何时在404页面上。

    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function () {
        if (this.readyState == 4) {
            if (this.status == 404) {
                console.log("404 detected");
            }
        }
    }
    xhr.open('HEAD', window.location.href);
    xhr.send();

它适用于大多数情况。 但我对某事有疑问。

当我到达带有POST查询的页面时,此函数告诉我它是404页面。 我认为这是因为xhr请求尝试使用经典的GET查询调用页面(为了不重新提交表单)然后webapp返回404,因为页面不接受GET查询。

我正试图找到一种方法来检测我在这种情况下的时间,然后,不要触发“404检测到”。 我不知道这是否可以使用javascript。

有任何想法吗 ?

我认为这是因为xhr请求尝试使用经典的GET查询调用页面

有点。 参见规范

HEAD方法与GET相同,只是服务器不能在响应中发送消息体(即响应终止于头部分的末尾)。


我正试图找到一种方法来检测我在这种情况下的时间,然后,不要触发“404检测到”。 我不知道这是否可以使用javascript。

JavaScript在很大程度上是无关紧要的。 它归结为HTTP。 对于用于发出HTTP请求的任何编程语言,答案都是相同的。

您提出请求并查看响应是什么。 有一个特定的请求类型,用于从没有正文的GET请求中获取标头(HEAD,您正在使用它)。 它不是100%可靠,因为某些服务器没有正确实现它。

标准中的POST没有类似的东西。

查明给定请求是否将获得404响应的唯一100%可靠方法是实际发出该请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM