HTTP HEAD Запрос в Javascript/Ajax?

Можно ли выполнить запрос HTTP Head исключительно с использованием XMLHTTPRequest в JavaScript?

Моя мотивация - сохранить пропускную способность.

Если нет, то можно ли его подделать?

2 ответа

Решение

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();
}

Это только короткий пример, показывающий, как использовать метод HEAD. Для производственного кода могут потребоваться более детальные обратные вызовы для разных состояний результата (успех, сбой, тайм-аут) и могут использоваться разные обработчики событий (onload, onerror а также ontimeout скорее, чем onreadystatechange).

Объект XMLHTTPRequest должен иметь

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

определено на нем

Другие вопросы по тегам