Javascript/Ajax 中的 HTTP HEAD 请求?

问题描述 投票:0回答:3

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

我的动机是节省带宽。

如果不是的话,可以造假吗?

javascript ajax http-headers xmlhttprequest
3个回答
106
投票

简单,只需使用 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
)。


0
投票

更现代的方法是使用 Fetch API 取代

XMLHttpRequest

例如(在

async
函数内)

const url = "https://example.com";
const response = await fetch(url, { method: "HEAD" });
console.log(`Got status: ${response.status}`);


-6
投票

XMLHTTPRequest 对象应该具有

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

定义在上面

© www.soinside.com 2019 - 2024. All rights reserved.