> Faqs > Cómo obtener el código de respuesta HTTP del servidor a una solicitud Ajax con Fetch

Cómo obtener el código de respuesta HTTP del servidor a una solicitud Ajax con Fetch

Estoy trabajando con Fetch para hacer conexiones Ajax contra un servidor que me devuelve JSON.

Mi pregunta es: ¿Cómo obtengo el código de respuesta HTTP del servidor cuando hago la conexión Ajax con Fetch?

Me refiero al código que devuelve el servidor con la solicitud HTTP, como 404, 500, 200, etc.

Respuestas

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 responseque 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.

Camila
680 29 46 6