是否可以发送 xhr HTTP HEAD 请求以仅获取第一个请求的 header 响应,而不自动遵循 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似乎指定应遵循请求,有办法阻止这种情况吗?
最佳答案
不存在,这不是您可以阻止的暴露行为。
这是因为 the spec you linked already ,指定的行为是 XmlHttpRequest 应透明地遵循重定向...不幸的是,在幕后,而不是以您可以阻止的方式。
如果资源移动等,这种方式可以尝试让事情变得更容易......但是当它被设计和规范制定时,所有这些重定向服务都不存在。只是没有强烈需要任何其他行为或能力来阻止它,我认为随着大量的重定向到达网络,我们不会看到添加的功能,但谁知道什么时候每个浏览器都会支持它。
关于javascript - XHR HEAD 请求是否可以不遵循重定向(301 302),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3820663/