Javascript 在Internet Explorer上获取csv数据失败

Javascript 在Internet Explorer上获取csv数据失败,javascript,internet-explorer,d3.js,fetch-api,Javascript,Internet Explorer,D3.js,Fetch Api,我刚刚尝试使用d3.jsv5获取CSV文件。除Internet Explorer 10+外,数据获取在所有浏览器中都能正常工作 d3.csv("test.csv").then(function (data) { console.log(data); }); 这表明Internet Explorer中未定义错误获取 我使用的是d3.v5.min.js d3.csv(以及所有其他d3获取方法)在内部使用获取API。如果查看浏览器兼容性表中的,您将看到Internet Explore

我刚刚尝试使用d3.jsv5获取CSV文件。除Internet Explorer 10+外,数据获取在所有浏览器中都能正常工作

d3.csv("test.csv").then(function (data) {
        console.log(data);
});
这表明Internet Explorer中未定义错误获取

我使用的是d3.v5.min.js

d3.csv
(以及所有其他d3获取方法)在内部使用获取API。如果查看浏览器兼容性表中的,您将看到Internet Explorer不支持Fetch API(任何版本,而不是您在问题中所说的10+)

因此,解决方案是使用polyfill进行获取(关于承诺,请参见下面的注释)。网上有几种选择

作为建议,不要嗅探用户代理,而是尝试检查浏览器是否支持Fetch。最简单的方法可能是使用
window.fetch
。以下代码段将在大多数浏览器中记录truthy值,在IE中记录false值(以及其他不支持Fetch的浏览器,如果存在的话):


console.log(window.fetch)
Hi,您可以使用较低版本的d3,或者您可以尝试添加一个或完全停止支持IE,因为它的市场份额很低nowdays@Endless我真希望你是对的。。。但你不是。今天仍然有很多IE用户。根据一些测量数据(它们有所不同),它是2019年使用率第三高的浏览器,拥有近7%的市场份额。根据IE11的数据,全球使用率为4%,IE<11甚至不在地图上。此外,safari似乎正在推动IE以5%的全球市场份额排名第四。非常感谢!!!我刚刚加载了两个js文件1,2.(fetch.umd.js)当我单独使用fetch.umd.js时,我遇到了一个错误“promise not defined”。添加polyfill.min.js后,它已修复。现在它工作得非常好。@Nj_编码器是的,的确,我忘了提那个。这些是我通常用于IE的文件:
“https://cdn.jsdelivr.net/npm/promise-polyfill@7/dist/polyfill.min.js“
”https://cdnjs.cloudflare.com/ajax/libs/fetch/2.0.4/fetch.min.js“
。我真的很期待有一天我会对过去充满好奇。