typescript - El polyfill de Fetch tiene un objeto Response diferente en Internet Explorer 11
Actualmente estoy batallando con Internet Explorer 11 y la API Fetch.
Tengo la siguiente llamada fetch usando TypeScript:
await fetch(theForm.action, { method: theForm.method, body: formData, credentials: "include" })
.then((response: Response) => {
if (response.status === 500)
throw Error(response.statusText);
if (response.redirected && response.url)
return window.location.href = response.url;
return response.json();
})
.catch((error: Error) => {
return this.setState({ isSubmitting: false, internalServerError: error });
});
El código se compila con ts a ES2015 y luego se convierte a ES5 usando babel. También he agregado babel-polyfill. El código de ejemplo funciona como se espera en otros navegadores que no sean IE. Resulta que el objeto Response en IE es completamente diferente y ni siquiera tiene la propiedad redirected y url siempre está vacía.
¿Hay algún polyfill que deba usar para que esto funcione en IE? Y, si no, ¿cuál sería una buena solución alternativa?
Respuesta #1
La tabla de compatibilidad de navegadores de MDN para Response dice que el atributo redirected no está disponible en IE.
Podrías intentar usar un polyfill como https://github.com/github/fetch junto con la sugerencia de la API en https://github.com/github/fetch#obtaining-the-response-url.
