如何使用 fetch API 获取 firefox 扩展的本地文件信息

how to GET local file information with fetch API for a firefox extension

我正在尝试将本地 csv 文件导入到我的 firefox 扩展 background.js 脚本中。 到目前为止,我的脚本如下所示:

fetch('http://localhost:8080/folder1/myFile.csv').then(function(response) {
// Convert to JSON
return response.json();
}).then(function(j) {
// `j` is a JavaScript object
console.log(j);
});


fetch(request).then(function() { /* handle response */ });

而且我似乎无法得到任何 console.log-ed。我应该使用另一种方法将我的 csv 作为对象吗?

此外,我使用的是 firefox 开发者版

您需要授予您的插件访问 "localhost" 域的权限。否则,由于跨源请求策略,您所做的任何 fetchXMLHttpRequest 都将失败。您可以通过在您的插件中添加此权限来做到这一点 manifest.json:

...

"permissions": [
  "*://localhost/*"
]

有关此内容的更多详细信息,请参阅关于 manifest.json permissions 的 MDN 页面。

当然,您还必须确保您的本地主机服务器已正确配置以提供文件。

// Convert to JSON
return response.json();

json() 方法将 JSON 转换为 JSON,而不是 JSON。 JSON and JavaScript objects are not the same thing!

您需要 CSV 解析器。浏览器没有一个内置的,但是有很多第三方库。 Google 出现 Papa Parse and CSV.js