typescript - Fetch-polyfill har olika Response-objekt i Internet Explorer 11
Jag har för närvarande problem med Internet Explorer 11 och Fetch API.
Jag har följande fetch-anrop med 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 });
});
Koden är ts-kompilerad till ES2015 och sedan ner till ES5 med hjälp av babel. Jag har också lagt till babel-polyfill. Exempelprogrammet fungerar som förväntat på andra webbläsare än IE. Det visar sig att Response-objektet i IE är helt annorlunda och har inte ens egenskapen redirected och url är alltid tom.
Finns det någon polyfill jag borde använda för att få detta att fungera i IE? Och, om inte, vad skulle vara en bra lösning?
Svar #1
MDNs tabell för webbläsarkompatibilitet för Response säger att attributet redirected inte är tillgängligt i IE.
Du kan försöka använda en polyfill som https://github.com/github/fetch tillsammans med API-förslaget på https://github.com/github/fetch#obtaining-the-response-url.
