我需要提供哪些权限(如果有)我的Chrome扩展程序才能让它进行远程AJAX调用?

时间:2015-08-04 00:54:02

标签: javascript jquery ajax google-chrome google-chrome-extension

我为我的图书馆编写了Chrome扩展程序。它向api.library.edu(学校图书馆)发出AJAX调用。

我的扩展程序使用jQuery,我的代码如下所示:

$.get("http://api.library.edu/?period=1month", function (data) {
    // process data
});

当我加载扩展时,它会进行AJAX调用并返回数据。

现在我绝对不对我的扩展程序授予任何权限(permissions[])。

我发布时,我的扩展程序是否正常工作?难道它不需要特殊权限来使用jQuery进行AJAX调用吗?

谢谢!我只是确保我正确地写了我的扩展程序。

1 个答案:

答案 0 :(得分:3)

您的扩展程序不需要任何其他权限即可在同一来源中进行AJAX调用。但是,如果api.library.edu未设置正确的CORS标头,您可能需要为该域请求跨域权限:

{
  "name": "My extension",
  ...
  "permissions": [
    "http://api.library.edu/"
  ],
  ...
}

From Google's Docs:

  

每个正在运行的扩展都存在于其自己独立的安全源中。在不请求其他权限的情况下,扩展可以使用XMLHttpRequest来获取其安装中的资源。

     

...

     

通过将主机或主机匹配模式(或两者)添加到清单文件的权限部分,扩展可以请求访问其原始数据之外的远程服务器。

如果您的扩展程序已经正常工作,那么这会让我相信库API已经设置了跨域标头,并且您不需要任何其他权限。