HTTP-запрос для получения кода состояния HTTP, но без содержимого

Я использую axios, чтобы получить статус http для URL-адресов:

async function getUrlHttpStatus (url) {
  try {
    const res = await axios({ method: 'get', url })
    return {
      status: res.status,
      statusText: res.statusText
    }
  } catch (err) {
    return {
      status: err.response.status,
      statusText: err.response.statusText
    }
  }
}

Это, очевидно, также возвращает весь контент с этого URL-адреса, и если его много, это может быть очень медленным.

Есть ли способ сделать HTTP-запрос, чтобы получить код состояния HTTP, не загружая весь контент с URL-адреса, так что это быстро ..?

🤔 А знаете ли вы, что...
С помощью JavaScript можно валидировать данные на стороне клиента, что улучшает пользовательский опыт.


4
721
2

Ответы:

Решено

Вы можете просто использовать метод HEAD, который по определению возвращает только заголовок (то есть код состояния), а не тело.


Способ доступа к ошибке: err.response.data.your_attribute_from_the_server

Если сообщение с сервера находится в , объект ошибки находится в messageattribute Например: err.response.data.message

async function getUrlHttpStatus (url) {
  try {
    const res = await axios({ method: 'get', url })
    return {
      status: res.status,
      statusText: res.statusText
    }
  } catch (err) {
    return {
      status: err.response.status,
      statusText: err.response.data.message//here replace the message attibute with whatever attribute you've sent from the server
    }
  }
}