javascript - 火狐 WebExtension : Make XMLHttpRequest

标签 javascript xmlhttprequest firefox-addon firefox-addon-webextensions

我正在制作一个 Firefox WebExtension 附加组件。这是应该发生的事情:

  1. 用户点击任何页面上的浏览器图标。
  2. 执行 JavaScript,从页面收集信息。
  3. 使用 XMLHttpRequest 将信息发送到我的服务器

这就是我的 Chrome 扩展所做的。但是,我无法让它与 Firefox 附加组件一起使用。注入(inject)并执行 JavaScript 是因为我确实看到了放在脚本末尾的 alert()。但是,没有调用我的服务器。 Firefox 调试器没有显示任何尝试的网络事件,也没有显示任何错误。

list :

{
  "manifest_version": 2,
  "name": "my_name",
  "version": "1.0",
  "description": "My description",
  "icons": {
    "48": "icons/my_icon.png"
  },
  "permissions": [
    "activeTab"
  ],
  "browser_action": {
    "default_icon": "icons/some_icon.png",
    "default_title": "My Name"
  },
  "background": {
    "scripts": ["background.js"]
  }
}

background.js:

browser.browserAction.onClicked.addListener(function(tab) {
    browser.tabs.executeScript(null, {file:"content_script.js"}); 
});

content_script.js:

var xmlHttp=new XMLHttpRequest();
xmlHttp.open("POST", "https://www.my_site.org",true);
var formData = new FormData();  
formData.append("my_var", "my_var");
xmlHttp.send(formData); 
alert("I do get here!");

最佳答案

您需要在 manifest.json 中将 URL 添加到 permissions

"permissions": [
    "activeTab",
    "*://developer.mozilla.org/*" <= URL
  ],

关于javascript - 火狐 WebExtension : Make XMLHttpRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41024875/

相关文章:

javascript - 'load' 事件与 readystatechange 'complete' 事件有什么区别?

javascript - bitly API支持CORS吗?

javascript - CHRis "readyState==3"是如何工作的?

javascript - 如何通过 history.pushState 获得有关历史记录更改的通知?

Javascript/XML DOM 不工作?

javascript - 猴子补丁 XMLHTTPRequest.onreadystatechange

javascript - 如何在 $scope.$on 中停止方法执行直到上传结束

javascript - 用于复制图像的 Firefox WebExtension 替代插件剪贴板 sdk

javascript - 使用 Web 扩展(附加组件)的 content_scripts 中的 ES 模块

javascript - 从嵌套对象数组中获取具有空值的对象