[英]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.