7

Firefox WebExtension 부가 기능을 만들고 있습니다. 다음과 같이해야합니다.Firefox WebExtension : XMLHttpRequest 만들기

  1. 사용자가 모든 페이지에서 브라우저 아이콘을 클릭합니다.
  2. JavaScript가 실행되어 페이지에서 정보를 수집합니다.
  3. 정보이 내 크롬 확장 프로그램이하는 일이다 XMLHttpRequest

사용하여 내 서버로 전송됩니다. 그러나 Firefox 부가 기능을 사용할 수 없습니다. 내가 스크립트의 끝에 넣었던 alert()을 볼 수 있기 때문에 JavaScript가 삽입되고 실행되었습니다. 그러나 내 서버에 대한 호출이 없습니다. 파이어 폭스 디버거는 시도한 네트워크 활동을 보여주지 않으며 에러를 보여 주지도 않습니다.

매니페스트 :

{ 
    "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

알림 위의 줄이 비동기적인 내용이므로 경고 메시지가 표시됩니다. 특정 문제가있는 경우 WebExtensions 부가 기능에서 발행 된 AJAX 요청이 "Origin"및/또는 "Referer"태그없이 누락되면 Firefox가 현재 문제를 해결 한 것을 기쁘게 생각합니다. Developer Edition, 버전 52.0a2 (2016-12-12). 현재 베타에서는 작동하지 않습니다. – Lori

답변

3

당신은에 permissions에 URL을 추가 할 필요가

+0

나는 Firefox (Chromium은 아니지만)에서 비슷한 어려움을 겪고 있으므로 뭔가 잘못하고있을 것입니다. ''* : //*.twitter.com/* ",''permissions' 값의 URL 패턴의 유효한 예가 될까요? – Lori

+0

네, 괜찮아 보입니다! – Andy