62

是否可以仅使用 JavaScript 中的 XMLHTTPRequest 来执行 HTTP Head 请求?

我的动机是节省带宽。

如果没有,是否可以伪造?

4

2 回答 2

105

很简单,只需使用 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 方法。生产代码可能需要针对不同的结果状态(成功、失败、超时)进行更细粒度的回调,并且可能使用不同的事件处理程序onloadonerrorontimeout不是onreadystatechange)。

于 2008-12-02T11:11:41.367 回答
-4

一个 XMLHTTPRequest 对象应该有

getAllResponseHeaders();
getResponseHeader("header-name")

在它上面定义

于 2008-12-02T11:12:24.377 回答