小程序获取本机 IP值
查了好多资料,都显示用以下这种方法,但是我运行之后总是报错,
var that = this;
wx.request({
url: 'http://ip-api.com/json',
success: function (e) {
that.setData({
ip: e.data,
})
}
});
会报错,如下:
错误修改过程:
在浏览器地址栏直接输入http://ip-api.com/json 测试,成功返回,status: success
{"status":"success","country":"China","countryCode":"CN", ... "query":"1.120.36.322"}
换成https,在浏览器地址栏直接输入https://ip-api.com/json 测试,会显示 status: fail
{"status":"fail","message":"SSL unavailable for this endpoint, order a key at https://members.ip-api.com/"}
把 http://ip-api.com/json 的 http 变成https,并且添加到合法域名(小程序后台—开发—开发设置—服务器域名)内,会依旧错误;
正确解决方法:
换个可以支持https访问的,因为微信安全域名只支持https 访问,
找到 https://tianqiapi.com/ip/,在浏览器地址栏直接输入https://tianqiapi.com/ip/ 测试,显示ip值,说明可以获取到IP值。
在小程序后台—开发—开发设置—服务器域名
// 请求获取ip
wx.request({
url: 'https://tianqiapi.com/ip/', //请求地址
method: 'POST',
header: {
'content-type': 'application/x-www-form-urlencoded'
},
success: function (res) {
// ip = res.data.ip
that.setData({
//把获取到的ip值赋给ip
ip: res.data.ip
})
}
});