是否可以仅使用 JavaScript 中的 XMLHTTPRequest 来执行 HTTP Head 请求?
我的动机是节省带宽。
如果没有,是否可以伪造?
是否可以仅使用 JavaScript 中的 XMLHTTPRequest 来执行 HTTP Head 请求?
我的动机是节省带宽。
如果没有,是否可以伪造?
很简单,只需使用 HEAD 方法,而不是 GET 或 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
)。
一个 XMLHTTPRequest 对象应该有
getAllResponseHeaders();
getResponseHeader("header-name")
在它上面定义