Я делаю надстройку Firefox WebExtension. Вот что должно произойти:Firefox WebExtension: Сделайте XMLHttpRequest
- Пользователь нажимает на значок браузера на ЛЮБОЙ странице.
- Выполняется JavaScript, собирая информацию со страницы.
- Информация посылается к серверу с помощью
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"]
}
}
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!");
Вы получаете предупреждение, потому что линии над предупреждением предназначены для асинхронного использования. Если у вас возникли проблемы, запросы AJAX, выпущенные надстройкой WebExtensions, выходят без тегов «Origin» и/или «Referer», тогда вам будет приятно, что Firefox исправил эту проблему с текущей Developer Edition, версия 52.0a2 (2016-12-12). Не работает на текущей бета-версии. – Lori