Estoy usando fetch polyfill para recuperar un JSON o texto de una URL, quiero saber cómo puedo verificar si la respuesta es un objeto JSON o es solo texto
fetch(URL, options).then(response => {
// how to check if response has a body of type json?
if (response.isJson()) return response.json();
});
javascript
json
fetch-api
Sibelius Seraphini
fuente
fuente
Respuestas:
Puede verificar el
content-type
de la respuesta, como se muestra en este ejemplo de MDN :Si necesita estar absolutamente seguro de que el contenido es JSON válido (y no confía en los encabezados), siempre puede aceptar la respuesta como
text
y analizarla usted mismo:Async / await
Si está usando
async/await
, podría escribirlo de una manera más lineal:fuente
Puede hacer esto limpiamente con una función auxiliar:
Y luego úsalo así:
Esto arrojará un error para que pueda
catch
hacerlo si lo desea.fuente
Utilice un analizador JSON como JSON.parse:
fuente