ant*_*onj 23 javascript ajax google-chrome xmlhttprequest
是否可以发送xhr HTTP HEAD请求以仅获取第一个请求的标头响应,而不是像重定向那样自动跟随301,302?我只对获取网址的新位置感兴趣.例:
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();
Run Code Online (Sandbox Code Playgroud)
http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send-method似乎指定的请求应遵循,是有没有办法制止?
W3C规范要求自动跟踪重定向,正如@Nick在另一个答案中建议的那样.但是,W3C正在考虑禁用重定向的属性,以用于此规范的未来版本:
此规范不包括为此规范的未来版本考虑的以下功能:
- load event和onload属性;
- 错误事件和onerror属性;
- progress事件和onprogress属性;
- 中止事件和onabort属性;
- 已经建议定时器,也许是ontimeout属性;
- 禁用以下重定向的属性;
- responseXML用于text/html文档;
- 跨站点XMLHttpRequest;
- responseBody处理字节流;
- overrideMimeType来修复MIME类型;
- getRequestHeader()和removeRequestHeader().
但是,在所有浏览器都实现之前,我不会屏住呼吸.您可能希望使用服务器端代理来处理此问题.只需编写一个简短的脚本,HEAD在您喜欢的服务器端语言/框架中执行请求,然后使用Ajax查询此服务.您还可以通过代理向第三方域请求作为积极的副作用.
| 归档时间: |
|
| 查看次数: |
14278 次 |
| 最近记录: |