2

Here is my code:

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

This code working fine everywhere where I want to use, but not working in case of Firefox extension.

I read the following stackoverflow articles but no avail: Call to $.ajax from firefox extension not working and Ajax In Firefox Plugin

Also try to use xmlHTTPRequest but the result is same.

4

3 回答 3

4

您应该使用插件 sdk 提供的请求模块。您只能在附加脚本而不是内容脚本中调用和使用此模块。

如果您需要从内容脚本执行 ajax 请求,请使用内容脚本和插件脚本之间的通信。您可以在此处找到文档。

如果你愿意,我有一个代码示例(我认为它可能很难阅读),但它可以帮助你。

于 2012-09-19T12:23:23.560 回答
1

以防万一它可能对未来的其他人有所帮助,我想分享一个简单的 ajax 请求包装器。在大多数情况下,可以将相同的 jQuery Ajax 配置传递给函数。(但这不是一个完整的转换)。

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

在 manifest.json 中,您应该将 url 添加到权限中:例如:

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