Angular 如何在生产中获得客户端ip地址而无需adblock阻止api请求
我正在使用Angular/Firebase应用程序,并使用此请求获取用户的IP地址Angular 如何在生产中获得客户端ip地址而无需adblock阻止api请求,angular,firebase,ionic-framework,Angular,Firebase,Ionic Framework,我正在使用Angular/Firebase应用程序,并使用此请求获取用户的IP地址 async getIp() { const resp = await fetch('https://jsonip.com', { mode: 'cors' }); return await resp.json(); } 下面是我得到的错误: GET net::ERR\u被\u客户端阻止\u 禁用Adblock时,它可以正常工作,但我需要为使用Adblock的用户提供另一种选择,我在goog
async getIp() {
const resp = await fetch('https://jsonip.com', { mode: 'cors' });
return await resp.json();
}
下面是我得到的错误:
GET net::ERR\u被\u客户端阻止\u
禁用Adblock时,它可以正常工作,但我需要为使用Adblock的用户提供另一种选择,我在google上找不到任何选择。感谢@t.Aoukar的提示,我通过创建一个可调用的云函数来返回用户的IP地址,从而获得了IP 下面是它可能有帮助的代码:
export const getIP = functions.region("europe-west1").https.onCall( (data, context) => {
const ip = context.rawRequest.ip;
console.log('IP HERE',ip)
return ip;
});
this.fns.httpsCallable("getIP")({ text: "Some Argument" })
.toPromise()
.then((resp) => {
this.userIp = resp;
})
.catch((err) => {
console.error({ err });
});
有什么原因你不能从你自己的服务器上获取它吗?嘿,谢谢你的评论,我正在使用firebase,它也托管在那里,如果有什么方法我可以从那里获取它,请你分享,我会非常感激!Firebase是仓库。你的客户从哪里装载?在那里你可以得到他们的IP。