Estoy usando fetch-API para enviar una solicitud GET a un backend de Spring Boot. La solicitud se ve algo así:
const response = await fetch(url); if (response.status === 200) { // do something } else { response.json().then(response => console.log(response)); }En caso de que envíe una solicitud válida, es decir, la url pasada a fetch() es válida, todo funciona bien. Sin embargo, en caso de que pase una URL no válida a fetch(), parecen estar sucediendo dos cosas:
Si bien espero que suceda el segundo punto, no puedo explicar el primero. No entiendo por qué este error de respuesta del servidor se registra en la consola de mi navegador. Tengo algunos bloques catch dentro de mi código, algo como:
const response = await fetch(url).catch(error => console.log(error));Sin embargo, que yo sepa, fetch solo arroja un error si se produjo un error de conexión de red o algo similar. Un código de respuesta que no sea igual a 200 no genera un error en la búsqueda. Entonces, como dije, no sé de dónde viene este mensaje de error y esperaba que alguien lo supiera, ¿tal vez sea algo genérico para la API de búsqueda que simplemente no sé?
Recomiendo usar "intentar atrapar" para capturar mejor los errores.
Si la respuesta es positiva y es un json, use un "entonces" después de la búsqueda.
try { const response = await fetch(url).then(res => res.json()); // do something } catch (e) { console.error(e); }Si recibe un error 400, consulte la documentación de la API para ver si está pasando el parámetro incorrectamente. o si esa no es la ruta