如何在Chrome / Firefox上启用geoIP ?像ipinfo这样的服务在Chrome和Firefox上被屏蔽



在页面加载时,我试图根据访问者IP获取坐标,使用ipinfo:

等服务
const request = await fetch("https://ipinfo.io/json?token=TOKEN", {
method: 'GET',
"Access-Control-Allow-Origin": "*",
"Content-Type": "application/json",
"charset": "utf-8"
});

这在Brave中是预期的。在Chrome浏览器中,请求被客户端"阻止"。在Firefox中,由于CORS,请求失败。

添加cors-anywhere url也不可行,因为它返回cors-anywhere url服务的位置坐标(而不是访问者)。

如何让geoIP在Chrome和Firefox上工作?是否有任何服务倾向于更好地工作-特别是对于来自localhost的请求的开发环境?

我通过首先获取访问者的IP来解决这个问题,使用api.ipify.org(前面有一个cors-anywhere url),然后将IP地址插入IP信息的获取查询中。下面是代码:

const ip = await fetch("https://[CORS-ANYWHERE-URL]/https://api.ipify.org?format=json&callback=getIP");
const ip_json = await ip.json();
console.log(ip_json);
const request = await fetch(`https://[CORS-ANYWHERE-URL]/ipinfo.io/${ip_json["ip"]}/geo?token=TOKEN`, {
method: 'GET',
"Access-Control-Allow-Origin": "",
"Content-Type": "application/json",
"charset": "utf-8"
});

相关内容

  • 没有找到相关文章

最新更新