Возможно ли выполнить запрос HTTP Head только с использованием XMLHTTPRequest в JavaScript?
Моей мотивацией является сохранение полосы пропускания.
Если нет, возможно ли это подделать?
Ответ 1
Просто, используйте метод 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).