vue前端通過騰訊接口獲取用戶ip的全過程
前言
之前在前端項目中獲取用戶ip的方式一直用的是搜狐的接口:http://pv.sohu.com/cityjson?ie=utf-8%22,同時這也是網(wǎng)上分享次數(shù)最多的接口,雖說提供的信息很少,但因為使用起來方便快捷,且基本沒什么限制,所以還是挺不錯的。但不知怎的,最新經(jīng)常在調(diào)用時出現(xiàn)403Forbidden,要么就是胡亂給ip和地區(qū),總之就是沒法用。
沒辦法,是時候另尋他途了。在經(jīng)過一番挑選后,最終選擇了騰訊的位置信息服務(wù)。其它可選的還有百度、高德、天地圖等。
騰訊位置服務(wù)
官網(wǎng):https://lbs.qq.com/
開發(fā)文檔:https://lbs.qq.com/service/webService/webServiceGuide/webServiceIp
騰訊位置服務(wù)提供了非常多的地圖和位置相關(guān)的功能,而我只用了其中的IP定位,頗有點殺雞用牛刀的感覺。對于個人開發(fā)者,騰訊提供了10000次/天的調(diào)用量,并發(fā)上限為5次/秒,用于訪問量不大的個人網(wǎng)頁還是夠用的。但是擴充配額只有成為企業(yè)開發(fā)者才能申請,所以對于訪問量較大的個人網(wǎng)址,只能選別的了。
使用方法
1.注冊賬號并登錄控制臺
2.創(chuàng)建應(yīng)用并添加key
在控制臺中點擊我的應(yīng)用,然后點擊創(chuàng)建應(yīng)用,信息可以隨意填。
創(chuàng)建好應(yīng)用后,點擊應(yīng)用內(nèi)的添加key:
在啟用產(chǎn)品中,按照自己的需求選擇類型,這里我根據(jù)需要選擇WebServiceAPI
,并在白名單內(nèi)填入域名。
3.獲取調(diào)用URL
進入WebServiceAPI
的開發(fā)文檔,選擇IP定位,可以看到調(diào)用方式為URL+key。文檔下方有調(diào)用示例,ip為選填,可以不填,那么最終的調(diào)用API為:
https://apis.map.qq.com/ws/location/v1/ip?key=NHLBZ-LRM6U-ER2VE-4RJPZ-VUFVH-27BED
在瀏覽器的地址欄中輸入URL,可以看到返回了相關(guān)的信息:
4.在項目中調(diào)用API獲取IP和地區(qū)信息
以vue項目為例,由于調(diào)用的API屬于第三方地址,直接使用HTTP的get方式發(fā)送請求的話,會導(dǎo)致跨域,解決方式有多種,這里采用JSONP
的方式進行解決。
4.1在項目中安裝vue-jsonp
由于Axios并不支持jsonp的請求方式,所以需要安裝第三方插件vue-jsonp。
npm i vue-jsonp -S
4.2調(diào)用API
編寫一個方法用來調(diào)用獲得的api:
import { jsonp } from 'vue-jsonp' import config from '../config/config.json' getUserIpConfig() { return new Promise((resolve, reject) => { jsonp(`https://apis.map.qq.com/ws/location/v1/ip?key=${config.MapKey}`, { output: 'jsonp' }).then(resp => { resolve(resp) }).catch(err => { console.log(err); }) }) }
由于jsonp是異步調(diào)用,因此外套一層promise,并使用async...await
的方式實現(xiàn)同步。
另外需要注意的是,在發(fā)送請求時,請求體里必須加上output: 'jsonp'
,否則會出現(xiàn)跨域問題。
async getAddress() { let positionInfo = await this.getUserIpConfig() // ...... }
至此,使用騰訊位置服務(wù)獲取用戶ip的方式介紹完畢。
總結(jié)
到此這篇關(guān)于vue前端通過騰訊接口獲取用戶ip的文章就介紹到這了,更多相關(guān)vue前端獲取用戶ip內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue+element 模態(tài)框表格形式的可編輯表單實現(xiàn)
這篇文章主要介紹了vue+element 模態(tài)框表格形式的可編輯表單實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-06-06vue?+?ele?實現(xiàn)下拉選擇框和下拉多選選擇框處理方案
這篇文章主要介紹了vue?+?ele?實現(xiàn)下拉選擇框和下拉多選選擇框處理方案,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08Vue重要修飾符.sync對比v-model的區(qū)別及使用詳解
這篇文章主要為大家介紹了Vue中重要修飾符.sync與v-model的區(qū)別對比及使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07