var returncitysn = {cip ajax,js原生请求远程ip库url得到的数据如何处理?

先说下我要实现的功能:写1个js,纯js,不掺杂后端语言的情况下实现

外国IP访问网站不跳转,国内IP指定地方不跳转,其他地区都跳转

我的解决思路是:

找到了1个ip库,前端页面中用

访问,结果得到了浏览器ip

ip = returnCitySN.cip; //获得设备ip

然后想通过var url = "http://freeapi.ipip.net/"+ip; 这个接口ajax get方式访问得到他的数据

访问目标站的数据格式是:

["中国","天津","天津","","鹏博士"]

很奇怪就是得不到我想要的效果,贴上代码,希望有人能指点我一下,不甚感激。

无标题文档

ip = returnCitySN.cip; //获得设备ip

var url = "http://freeapi.ipip.net/"+ip;

var request = new XMLHttpRequest()

request.onreadystatechange = function () { // 回调

if (request.readyState === 4) { // 成功

if (request.status == 200) {

alert(request.responseText) // 这个打印不出来数据?

} else {

console.log(request.status)

}

}

}

// GET 请求

request.open('GET',url)

request.send()

alert(request.responseText)//这个也打印不出来数据?

另外我在这个案例中(http://www.w3school.com.cn/ti...)也尝试了将

下面onclick里的参数由他自带的

/example/xdom/note.xml

换成我想的

http://freeapi.ipip.net/120.227.44.221

然后提交代码,访问还是获取不了,不知道问题出在哪里?

像这种接口

http://pv.sohu.com/cityjson?ie=utf-8

它很好,它是返回来了1个js的代码语句

var returnCitySN = {"cip": "120.227.44.221", "cid": "CN", "cname": "CHINA"};

我很容易就在js里使用了它返回的数据

但是像这个接口

http://freeapi.ipip.net/120.227.44.221

它返回的是个框框[]数据

["中国","湖南","长沙","","移动"]

我该如何处理它?

另外我在我的网站里使用ajax请求别的网站的数据,这是属于ajax跨域请求这个概念吗?

在uni-app中获取IP地址的方法有多种,其中一种方法是使用引入外部JS的方式来获取。你可以在浏览器中使用以下代码来获取IP信息: ``` <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script> <script type="text/javascript"> console.log(returnCitySN["cip"], returnCitySN["cname"]) </script> ``` 这段代码会通过引入http://pv.sohu.com/cityjson?ie=utf-8这个外部JS文件来获取IP地址信息。你可以将这段代码放在你的uni-app项目中的某个页面中的<script>标签中,然后在浏览器中打开该页面,就能在控制台中看到IP信息的输出。 另外,如果你想在uni-app中直接获取IP地址,你可以使用utils.js文件中定义的getIPs方法。这个方法会获取局域网中的所有IP地址。具体的代码如下: ``` /**utils.js文件内容**/ const fun = 'function'; /**获取局域网所有ip**/ export function getIPs(success){ var IPUtils = plus.android.newObject("io.dcloud.HBuilder.ip.IPUtils"); //获取arp地址及mac信息 var hevent = plus.android.implements( "io.dcloud.HBuilder.ip.IPUtils$OnScanListener", { "scan":function(resultMap){ if(success && typeof success === fun){ success(JSON.stringify(resultMap)) } } }); //设置接口信息 plus.android.invoke(IPUtils,'setOnScanListener',hevent); //刷新arp缓存 plus.android.invoke(IPUtils,'startScan'); } ``` 你可以将这段代码放在utils.js文件中,然后在你的uni-app项目中的某个页面中引入并调用getIPs方法来获取局域网中的所有IP地址。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Android/uni-app读取局域网所有IP&MAC](https://blog.csdn.net/qq2523208472/article/details/103156623)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [uniapp如何获取IP地址](https://blog.csdn.net/dwb123456123456/article/details/116296138)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值