2

これが私のコードです:

$.ajax({
          url: 'xxx',
          success: function(data) 
          {
             if (data.trim() == '0')
             {
                //IF CODE
             } 
            else
            {
              //ELSE CODE
            }
         }
    });

このコードは、使用したい場所ならどこでも正常に機能しますが、Firefox拡張機能の場合は機能しません。

私は次のstackoverflowの記事を読みましたが、役に立ちませんでした: Firefox拡張機能から$ .ajaxを呼び出すと、Firefoxプラグインで Ajaxが機能しません

また、 xmlHTTPRequestを使用してみてくださいが、結果は同じです。

4

3 に答える 3

4

アドオンSDKによって提供されるリクエストモジュールを使用する必要があります。このモジュールは、アドオンスクリプトでのみ呼び出して使用でき、コンテンツスクリプトでは使用できません。

コンテンツスクリプトからajaxリクエストを実行する必要がある場合は、コンテンツスクリプトとアドオンスクリプト間の通信を使用します。ドキュメントはここにあります

必要に応じて、コードの例を示します(読みにくいと思います)が、役立つ場合があります。

于 2012-09-19T12:23:23.560 に答える
1

将来他の人に役立つかもしれない場合に備えて、ajaxリクエストの簡単なラッパーを共有したいと思います。ほとんどの場合、同じjQueryAjax構成を関数に渡すことができます。(しかし、それは完全な変換ではありません)。

function sendAjax(ajaxConfig) {
  var request = Request({
    url: ajaxConfig.url,
    contentType: ajaxConfig.contentType,
    content: ajaxConfig.data,
    headers: ajaxConfig.headers,
    onComplete: function(response){
      var data = response.json;
      if(!data)
        data = response.text;

      //console.log("Ajax complete", response.status, ajaxConfig.url, response.text);    
      if(ajaxConfig.complete){
        ajaxConfig.complete(data);

      }

      if(response.status >= 400){ //got error
        if(ajaxConfig.error){
          //console.log("Ajax error", response.status, ajaxConfig.url, response.text);
          ajaxConfig.error(data);
        }
      }
      else{ //success
        if(ajaxConfig.success){
          //console.log("Ajax success", ajaxConfig.url, response.text);
          ajaxConfig.success(data);
        }
      }

    }

  });

  switch(ajaxConfig.type){
    case "POST":
      request.post();
      break;
    case "PUT":
      request.put();
    case "DELETE":
      request.delete();
    default:
      request.get();
  }

}
于 2015-09-04T11:28:01.037 に答える
0

マニフェスト.jsonで、権限にURLを追加する必要があります:例:

"permissions": [
    "tabs",
    "webRequest",
    "webRequestBlocking",
    "activeTab",
    "*://xxx/*"
],
于 2020-05-26T20:25:48.440 に答える