是否可以发送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似乎指定应遵循请求,有没有办法阻止这种情况?
没有,这不是您可以停止的公开行为。
这是因为您已经链接了规范,所以指定的行为是XmlHttpRequest应该 透明地 遵循重定向……不幸的是,在幕后,而不是以您可以避免的方式。
这是尝试使事情变得更容易的方式,如果资源移动等,但是,当设计并制定规范时,所有这些重定向服务都不存在。只是没有太多其他需要阻止它的行为或能力了,我认为随着许多重定向进入网络,我们不会看到增加的功能,但是谁知道每种浏览器何时会支持它。