我为我的图书馆编写了Chrome扩展程序。它向api.library.edu
(学校图书馆)发出AJAX调用。
我的扩展程序使用jQuery,我的代码如下所示:
$.get("http://api.library.edu/?period=1month", function (data) {
// process data
});
当我加载扩展时,它会进行AJAX调用并返回数据。
现在我绝对不对我的扩展程序授予任何权限(permissions
为[]
)。
我发布时,我的扩展程序是否正常工作?难道它不需要特殊权限来使用jQuery进行AJAX调用吗?
谢谢!我只是确保我正确地写了我的扩展程序。
答案 0 :(得分:3)
您的扩展程序不需要任何其他权限即可在同一来源中进行AJAX调用。但是,如果api.library.edu
未设置正确的CORS标头,您可能需要为该域请求跨域权限:
{
"name": "My extension",
...
"permissions": [
"http://api.library.edu/"
],
...
}
每个正在运行的扩展都存在于其自己独立的安全源中。在不请求其他权限的情况下,扩展可以使用XMLHttpRequest来获取其安装中的资源。
...
通过将主机或主机匹配模式(或两者)添加到清单文件的权限部分,扩展可以请求访问其原始数据之外的远程服务器。
如果您的扩展程序已经正常工作,那么这会让我相信库API已经设置了跨域标头,并且您不需要任何其他权限。