小编典典

XHR HEAD请求是否可能不跟随重定向(301302)

ajax

是否可以发送xhr HTTP HEAD请求以仅获取第一个请求的标头响应,而不像重定向一样自动跟随301、302?我只对获取URL的新位置感兴趣。例:

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(data) {
    if (xhr.readyState == 4) {
        if (xhr.status == 301 || xhr.status == 302) {
            // Get new location url don't GET it
        }
    }
};
xhr.open('HEAD', url, true);
xhr.send();

http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send-
method似乎指定应遵循请求,有没有办法阻止这种情况?


阅读 456

收藏
2020-07-26

共1个答案

小编典典

没有,这不是您可以停止的公开行为。

这是因为您已经链接了规范,所以指定的行为是XmlHttpRequest应该 透明地 遵循重定向……不幸的是,在幕后,而不是以您可以避免的方式。

这是尝试使事情变得更容易的方式,如果资源移动等,但是,当设计并制定规范时,所有这些重定向服务都不存在。只是没有太多其他需要阻止它的行为或能力了,我认为随着许多重定向进入网络,我们不会看到增加的功能,但是谁知道每种浏览器何时会支持它。

2020-07-26