Javascript/Ajax 中的 HTTP HEAD 请求? [英] HTTP HEAD Request in Javascript/Ajax?
问题描述
是否可以仅使用 JavaScript 中的 XMLHTTPRequest 来执行 HTTP Head 请求?
Is it possible to do a HTTP Head request solely using an XMLHTTPRequest in JavaScript?
我的动机是节省带宽.
如果没有,是否可以伪造?
If not, is it possible to fake it?
推荐答案
简单,只需使用 HEAD 方法,而不是 GET 或 POST:
Easy, just use the HEAD method, instead of GET or POST:
function UrlExists(url, callback)
{
var http = new XMLHttpRequest();
http.open('HEAD', url);
http.onreadystatechange = function() {
if (this.readyState == this.DONE) {
callback(this.status != 404);
}
};
http.send();
}
这只是展示如何使用 HEAD 方法的一个简短示例.对于不同的结果状态(成功、失败、超时),生产代码可能需要更细粒度的回调,并且可能使用不同的 事件处理程序(onload
、onerror
和 ontimeout
而不是 onreadystatechange
).
This is just a short example to show how to use the HEAD method. Production code may need more fine-grained callbacks for different result states (success, failure, timeout), and may use different event handlers (onload
, onerror
and ontimeout
rather than onreadystatechange
).
这篇关于Javascript/Ajax 中的 HTTP HEAD 请求?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!