Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何在生产中获得客户端ip地址而无需adblock阻止api请求_Angular_Firebase_Ionic Framework - Fatal编程技术网

Angular 如何在生产中获得客户端ip地址而无需adblock阻止api请求

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

我正在使用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的用户提供另一种选择,我在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。