web-dev-qa-db-fra.com

HTTP HEAD Demande en Javascript / Ajax?

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?

53
EoghanM

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).

94
doekman

Un objet XMLHTTPRequest doit avoir

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

défini dessus

0
adam