Search code examples
javascriptajaxhttp-headersxmlhttprequest

HTTP HEAD Request in Javascript/Ajax?


Is it possible to do a HTTP Head request solely using an XMLHTTPRequest in JavaScript?

My motivation is to conserve bandwidth.

If not, is it possible to fake it?


Solution

  • Easy, just use the HEAD method, instead of GET or 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();
    }
    

    This is just a short example to show how to use the HEAD method. Production code may need more fine-grained callbacks for different result states (success, failure, timeout), and may use different event handlers (onload, onerror and ontimeout rather than onreadystatechange).