获取 polyfill 在 Internet Explorer 11 中具有不同的响应对象

Posted

技术标签:

【中文标题】获取 polyfill 在 Internet Explorer 11 中具有不同的响应对象【英文标题】:Fetch polyfill has different Response-object in internet explorer 11 【发布时间】:2018-05-01 05:58:19 【问题描述】:

我目前正在为Internet Explorer 11Fetch API 苦苦挣扎。

我有以下 fetch-call unsing 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 );
    );

代码被 ts 编译为ES2015,然后使用 babel 编译为ES5。我还添加了babel-polyfill。示例代码在 IE 以外的其他浏览器上按预期工作。 事实证明,IE 中的Response-object 完全不同,甚至没有属性redirectedurl 始终为空。

我应该使用什么 polyfill 在 IE 中完成这项工作吗?如果没有,什么是好的解决方法?

【问题讨论】:

【参考方案1】:

MDN's browser compatibility table for Response 表示redirected 属性在 IE 上不可用。

您可以尝试使用像 https://github.com/github/fetch 这样的 polyfill 以及 https://github.com/github/fetch#obtaining-the-response-url 上的 API 建议。

【讨论】:

以上是关于获取 polyfill 在 Internet Explorer 11 中具有不同的响应对象的主要内容,如果未能解决你的问题,请参考以下文章

如何使Internet Explorer 8支持第n个child()CSS元素?

获取 polyfill 在 Edge(或 IE)上不起作用

Vue2.0做的项目在IE下面打开一片空白?

Angular 应用程序与 Internet Explorer 的兼容性

vue cli3-IE浏览器-babel-polyfill

网络连接,IPv4无internet访问权限,IPv6连接internet,是啥问题?