在访问内容脚本中的URL时,不允许加载本地资源:<blob_url>。

3

我正在尝试在我的内容脚本中读取一个本地文件。我使用扩展弹出窗口中的文件对话框上传本地文件,然后将URL作为消息发送到内容脚本。

我在我的Chrome扩展程序的弹出式JavaScript中从本地读取文件创建了一个Blob URL,然后将其作为消息传递给内容脚本,在那里我尝试通过xhr获取它。我验证了URL在内容脚本中被正确接收,并且在Chrome中加载时具有正确的内容。我在附加代码的最后一行收到此错误。

Not allowed to load local resource: blob:chrome-extension%3A//kbapkffopcceekghjelpjphdebhdkohi/9e40f540-9eb8-4ea6-ae7d-6ad52e7d2f89

代码:

JSONFromUrl = function (url) {
  var xhr = new XMLHttpRequest();
  xhr.open('GET', url, true);
  xhr.responseType = 'blob';
  xhr.onload = function(e) {
  if (this.status == 200) {
  console.log("success");
    };
  }
  };
  xhr.send();
};

我已在清单权限中添加了 "file:///*",但我不确定是否有遗漏的内容。

你不能使用本地文件来完成这个任务。你必须在网页服务器上运行你的脚本。 - Florent
你的意思是来自Chrome扩展的content_scripts只能访问非本地URL吗? - gvijay
前往chrome://extensions,然后在您的扩展程序中勾选“允许访问文件网址”。 - Alejandro Silvestri
@YoArgentino:已经检查过了。 - gvijay
1个回答

3

很可能。我已经成功将文件作为ArrayBuffer发送了,但我仍然觉得传递URL会更好。 - gvijay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接