如何使用 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" 域的权限。否则,由于跨源请求策略,您所做的任何 fetch
或 XMLHttpRequest
都将失败。您可以通过在您的插件中添加此权限来做到这一点 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。
我正在尝试将本地 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" 域的权限。否则,由于跨源请求策略,您所做的任何 fetch
或 XMLHttpRequest
都将失败。您可以通过在您的插件中添加此权限来做到这一点 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。