Firefox WebExtension:生成XMLHttpRequest

use*_*003 7 javascript xmlhttprequest firefox-addon firefox-addon-webextensions

我正在制作Firefox WebExtension插件.这是应该发生的事情:

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

这是我的Chrome扩展程序的功能.但是,我无法使用Firefox附加组件.JavaScript被注入并执行,因为我确实看到了alert()我在脚本末尾放置的内容.但是,没有调用我的服务器.Firefox调试器没有显示网络活动,也没有显示任何错误.

表现:

{
  "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"]
  }
}
Run Code Online (Sandbox Code Playgroud)

background.js:

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

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!");
Run Code Online (Sandbox Code Playgroud)

And*_*ndy 2

您需要将 URL 添加permissionsmanifest.json

"permissions": [
    "activeTab",
    "*://developer.mozilla.org/*" <= URL
  ],
Run Code Online (Sandbox Code Playgroud)