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")
определено на нем