El método fetch()
de JavaScript en el navegador devuelve siempre una promesa que resuelve entregando lo que sería un objeto de respuesta donde tienes mucha información.
Este objeto Response tiene una propiedad llamada status
que representa el código de estado HTTP de la respuesta del servidor. Es muy sencillo de usar. Aquí tienes un ejemplo sobre cómo puedes obtener el código de estado HTTP del servidor.
fetch('https://api.example.com/users', {
method: 'GET',
})
.then((response) => {
console.log('Código de respuesta HTTP que te devuelve el servidor es:', response.status);
return response.json();
})
.then((data) => {
console.log('Los datos recibidos de tu servicio web son:', data);
})
.catch((error) => {
console.error('Hemos detectado un error con el siguiente mensaje de error:', error);
});
En este ejemplo, la función fetch() está realizando una petición GET a https://api.example.com/users, que se supone que te devuelve un json con los usuarios de una API. La promesa resultante se resuelve a un objeto response
que recibes en el primer then
. El código de estado HTTP lo tenemos en la propiedad response.status
.
Ese código de respuesta lo estamos mostrando en la consola en el primer then
. Luego todo lo demás es el código típico para convertir la respuesta en un objeto JSON, lo que tienes que hacer obteniendo una nueva promesa. Tienes más info en el artículo de fetch.
Es importante tener en cuenta que solamente se rechaza la primera promesa devuelta por fetch()
en caso de un fallo de red (la internet está indisponible) o si algo impide la realización de la petición, como un cortafuegos. Los códigos de estado de HTTP típicos que surgen por un error de servidor (500) o página / recurso no encontrada/o (404) se resuelve por la parte positiva de la promesa. El código de estado de error se recibe igualmente en el objeto response
que te devuelve la primera promesa de fetch. Por lo tanto, es posible que también desees comprobar el código de estado y verificar que está todo bien antes de obtener el json, o para que, en caso de una respuesta incorrecta avisar al usuario de alguna manera y tomar otras medidas apropiadas en tu aplicación frontend.
Espero que esto te sirva.