7

Я делаю надстройку Firefox WebExtension. Вот что должно произойти:Firefox WebExtension: Сделайте XMLHttpRequest

  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"] 
    } 
} 

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

Вы получаете предупреждение, потому что линии над предупреждением предназначены для асинхронного использования. Если у вас возникли проблемы, запросы AJAX, выпущенные надстройкой WebExtensions, выходят без тегов «Origin» и/или «Referer», тогда вам будет приятно, что Firefox исправил эту проблему с текущей Developer Edition, версия 52.0a2 (2016-12-12). Не работает на текущей бета-версии. – Lori

ответ

3

Вы должны добавить URL в permissions в manifest.json

+0

У меня схожие трудности (на Firefox, но не на Chromium), поэтому я должен делать что-то неправильно. Будет ли '' *: //*.twitter.com/* ",' быть допустимым примером шаблона URL-адреса в значении 'permissions'? – Lori

+0

Да, отлично! – Andy

 Смежные вопросы

  • Нет связанных вопросов^_^