私はFirefox WebExtensionアドオンを作成しています。何が起こるはずです:Firefox WebExtension:XMLHttpRequestを作成する
- ユーザーは、すべてのページのブラウザアイコンをクリックします。
- JavaScriptが実行され、ページから情報が収集されます。
- 情報は、これは私のChromeの拡張機能が何をするかである
XMLHttpRequest
を使用して自分のサーバーに送信されます。しかし、私はこれをFirefoxのアドオンで動作させることはできません。スクリプトの最後に入れたalert()
が表示されているので、JavaScriptが注入されて実行されます。ただし、サーバーへの呼び出しは行われません。 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"]
}
}
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!");
アラートの上の行が非同期のものであるため、警告が表示されます。具体的な問題は、WebExtensionsアドオンで発行されたAJAX要求が「Origin」および/または「Referer」タグなしで出力されている場合、Firefoxが現在の問題を解決したことに満足していますDeveloper Edition、バージョン52.0a2(2016-12-12)現在のベータ版では動作しません。 – Lori