文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

js前端怎么获取用户位置及ip属地信息

2023-07-02 16:39

关注

今天小编给大家分享一下js前端怎么获取用户位置及ip属地信息的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

尝试一:navigator.geolocation

尝试了使用 navigator.geolocation,但未能成功拿到信息。

getGeolocation(){  if ('geolocation' in navigator) {        console.log('地理位置服务可用')    navigator.geolocation.getCurrentPosition(function (position) {      console.dir('回调成功')      console.dir(position) // 没有输出      console.dir(position.coords.latitude, position.coords.longitude)    }, function (error) {      console.error(error)    })  } else {        console.error('地理位置服务可用')  }}

尝试二:sohu 的接口

尝试使用 pv.sohu.com/cityjson?ie… 获取用户位置信息, 成功获取到信息,信息样本如下:

{"cip": "14.11.11.11", "cid": "440000", "cname": "广东省"}
// 需要做跨域处理getIpAndAddressSohu(){  // config 是配置对象,可按需设置,例如 responseType,headers 中设置 token 等  const config = {    headers: {      Accept: 'application/json',      'Content-Type': 'application/json;charset=UTF-8',    },  }  axios.get('/apiSohu/cityjson?ie=utf-8', config).then(res => {    console.log(res.data) // var returnCitySN = {"cip": "14.11.11.11", "cid": "440000", "cname": "广东省"};    const info = res.data.substring(19, res.data.length - 1)    console.log(info) // {"cip": "14.11.11.11", "cid": "440000", "cname": "广东省"}    this.ip = JSON.parse(info).cip    this.address = JSON.parse(info).cname  })}

调试的时候,做了跨域处理。

proxy: {  '/apiSohu': {    target: 'http://pv.sohu.com/', // localhost=>target    changeOrigin: true,    pathRewrite: {    '/apiSohu': '/'    }  },}

下面是一张获取到位置信息的效果图:

js前端怎么获取用户位置及ip属地信息

尝试三:百度地图的接口

需要先引入百度地图依赖,有一个参数 ak 需要注意,这需要像管理方申请。例如下方这样

<script src="https://api.map.baidu.com/api?v=2.0&ak=3ufnnh7aD5CST"></script>
getLocation() {   const $this = this;  var geolocation = new BMap.Geolocation();//返回用户当前的位置  geolocation.getCurrentPosition(function (r) {    if (this.getStatus() == BMAP_STATUS_SUCCESS) {      $this.city = r.address.city;      console.log(r.address) // {city: '广州市', city_code: 0, district: '', province: '广东省', street: '', …}    }  });}
function getLocationBaiduIp(){  function myFun(result){    const cityName = result.name;    console.log(result) // {center: O, level: 12, name: '广州市', code: 277}  }  var myCity = new BMap.LocalCity();  myCity.get(myFun);}

成功用户的省市位置,以及经纬度坐标,但会先弹窗征求用户意见。

js前端怎么获取用户位置及ip属地信息

js前端怎么获取用户位置及ip属地信息

以上就是“js前端怎么获取用户位置及ip属地信息”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯