7

Ich mache ein Firefox WebExtension Add-on. Hier ist, was passieren sollte:Firefox WebExtension: Make XMLHttpRequest

  1. Benutzer klickt Browser-Symbol auf jeder Seite.
  2. JavaScript wird ausgeführt und sammelt Informationen von der Seite. mit
  3. Informationen auf meinem Server gesendet XMLHttpRequest

Dies ist, was meine Chrome-Erweiterung tut. Allerdings kann ich das mit dem Firefox-Add-On nicht zum Laufen bringen. Das JavaScript wird eingefügt und ausgeführt, weil ich die alert() sehe, die ich am Ende des Skripts gesetzt habe. Auf meinem Server wird jedoch kein Anruf getätigt. Der Firefox-Debugger zeigt keine versuchten Netzwerkaktivitäten an, noch zeigt er einen Fehler an.

Manifest:

{ 
    "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!"); 
+0

Sie erhalten die Warnung, weil die Zeilen über der Warnung für asynchrone Daten sind. Wenn das spezielle Problem, das Sie haben, ist, dass die AJAX-Anfragen, die vom WebExtensions-Add-on herausgegeben werden, ohne "Origin" - und/oder "Referer" -Tags auskommen, dann werden Sie erfreut sein, dass Firefox dieses Problem behoben hat Developer Edition, Version 52.0a2 (2016-12-12). Funktioniert nicht mit der aktuellen Beta. – Lori

Antwort

3

Sie müssen die URL zu permissions inhinzufügen

+0

Ich habe ähnliche Schwierigkeiten (auf Firefox, aber nicht Chromium), also muss ich etwas falsch machen. Wäre '" *: //*.twitter.com/* ",' ein gültiges Beispiel für ein URL-Muster im Wert von 'Berechtigungen'? – Lori

+0

Ja, sieht gut aus! – Andy

Verwandte Themen