2017-12-10 31 views
0

私はブラウザの拡張機能を全く新しくしています。私は、Webページのコンテンツを自動的に変更する簡単な拡張機能をいくつか成功させました。そして、サーバーに真偽値を問い合わせた後にそのコンテンツを変更したいと思っています。私はAJAXリクエスト(純粋なjavascript)でこれをやろうとしています。何らかの理由で、私のブラウザエクステンションが相互作用しているサーバ上のPHPスクリプトから情報を得ることができません。Firefox拡張機能からAJAXリクエストを作成するにはどうすればよいですか?

マニフェスト:

{ 

    "manifest_version": 2, 
    "name": "Truth Seeker", 
    "version": "1.0", 

    "description": "Returns true.", 

    "icons": { 
    "48": "icons/icon.png" 
    }, 

    "content_scripts": [ 
    { 
     "matches": ["*://*/*"], 
     "js": ["script.js"] 
    } 
    ] 

} 

スクリプト:

theBool = false; 
url = /* PHP URL HERE */; 
string = ""; 

request(MakeOutput, url, string); 
if(theBool == true){ 
    alert("is true"); 
} 

function MakeOutput(x){ 
    if(x == "true"){ 
     theBool = true; 
    } 
} 

function request(fix, url, string){   
    var xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
     if (xhttp.readyState == 4 && xhttp.status == 200) { 
      fix(xhttp.responseText); 
     } 
    } 
    xhttp.open("POST", url, true); 
    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    xhttp.send(string); 
} 

現時点では単なるエコー "真" サーバー上のPHPファイル。そのPHPスクリプトに直接アクセスすると(ブラウザにURLを入力することによって)、「真」と警告します。それはなぜそれを行うが、他のページはありませんか?

答えて

0

さて、私はこれをしばらく刈り取り、自分自身をあきらめて、質問をしてから、ほんの数分で自分の答えを考え出しました。今後誰かを助けるために、私はマニフェストにこれを追加しました:

"permissions": [ 
    "webRequest", 
    "<all_urls>" 
    ],