FormData.entries() 在 Internet Explorer 11 中?

FormData.entries() in Internet Explorer 11?

如官方文档所示,IE11 根本不支持 FormData,或者至少我需要的支持还不够。

在我的代码中,我必须遍历 FormData 元素的条目。对于这个任务,我使用了 entries() 函数,它在 IE 上不起作用,给我错误

Object doesn't support property or method 'entries'

我已经通过 npm 添加 https://github.com/jimmywarting/FormData 到我的项目中,并将其添加到我在 webpack.config.js 中的条目,然后看起来像这样。

const webpack = require("webpack");
const path = require("path");

module.exports = {
    entry: {
        app: ["babel-polyfill", "formdata-polyfill", "whatwg-fetch", "./Scripts/Modules/index.ts"]
    },
}

在控制台中我可以看到 formdata.min.js 已加载。由于错误仍然存​​在,因此它似乎没有按应有的方式使用 polyfill。它仍然使用失败的默认值。 我如何告诉我的 TypeScript 代码使用 polyfill-version 而不是浏览器的默认实现,因为包没有提供任何 d.ts 文件?

这可能吗?如果不是 - 这种情况的可能解决方法是什么?

这是 FormData 对象在 dev-tools 中的样子:

只有 append 作为方法定义

不确定是否对您有帮助,但我今天遇到了这个问题,似乎通过 NPM 提供的 polyfill 版本没有完全覆盖 FormData 对象,因此不适合 IE11 或 Edge。

我发现切换到库的 V3 修复了这个问题。为此,我从 github 存储库中获取了 FormData.js 文件的内容,并将其作为组件添加到我自己的自定义 JavaScript 代码中。

我使用 WebPack,遇到了 IE11 的一些其他问题,仍在调查中。

让我知道如何直接包含内容而不是从 NPM 获取内容。