我有一个在 Manifest v2 下运行的 Google Chrome 扩展程序。以前,我能够与http://www.geoplugin.net/javascript.gp交谈并获得用户国家代码(例如美国、英国)。但是,Manifest v2 施加了一些限制,不允许与非 https 的、列入白名单的网站交谈。这意味着我不能再去服务器获取我的信息了。
我想继续拥有这个功能。我相信我最好的选择是利用 HTML5 地理位置将坐标转换为国家代码。我还没有看到这个的任何实现这有可能在合理范围内实现吗?我在网上找到的所有解决方案都建议与服务器通信,但我没有遇到过 https 解决方案。
我还尝试与“https://maps.googleapis.com/maps/api/geocode/”通信,但是,即使将它添加到 content_security_policy,我也无法查询 JSON。
只是好奇是否有人有我没有看到的解决方案/已经解决了这个问题
我在 jQuery 中使用了 RobW 的答案:
$.get('http://www.geoplugin.net/json.gp', function(result){
var geoplugin = JSON.parse(result.replace(/^[^\{]+/, '').replace(/\);?$/, ''));
console.log(geoplugin.geoplugin_countryCode);
});