Est-il possible de faire une requête HTTP Head en utilisant uniquement une XMLHTTPRequest en JavaScript?
Ma motivation est de conserver la bande passante.
Sinon, est-il possible de le simuler?
Facile, utilisez simplement la méthode HEAD, au lieu de GET ou 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();
}
Ceci est juste un petit exemple pour montrer comment utiliser la méthode HEAD. Le code de production peut nécessiter des rappels plus fins pour différents états de résultat (succès, échec, délai d'expiration), et peut utiliser différents - gestionnaires d'événements (onload
, onerror
et ontimeout
plutôt que onreadystatechange
).
Un objet XMLHTTPRequest doit avoir
getAllResponseHeaders();
getResponseHeader("header-name")
défini dessus