请求的发送
官方文档
组件名称:uni.request(OBJECT)
在各个小程序平台运行时,网络相关的 API 在使用前需要配置域名白名单
GET请求
methods: {
getData(){
console.log('发送请求')
uni.request({
method:'GET',
url:'http://api.1xxxu.cn/account/queryRandomEmergency?lang=zh_CN',
data:{'mobile':717724301},
success(res){
console.log('回调')
console.log(res.flag)
this.list=res.data
}
})
}
}
POST请求
其实post请求无外乎就是把method:GET换成了method:POST,
get请求的data会附加到url中,而post请求的data会写入请求体
methods: {
getData(){
console.log('发送请求')
uni.request({
method:'POST',
url:'http://api.1xxxu.cn/account/queryRandomEmergency?lang=zh_CN',
data:{'mobile':717724301},
success(res){
console.log('回调')
console.log(res.flag)
this.list=res.data
}
})
}
}
坑
注意解决跨域问题
这里由于前端不会解决跨域。所以我使用aop在每一个接口前面都塞了一个跨域注解
请求的回调函数中this指向错误的问题
这里的this不同于vue中可以直接修改数据,
这里的this并不是整个节点,而是这个sucess方法
,这里我打印了一下this
淦!
尝试解决吧:
methods: {
getData() {
var tempThis=this
uni.request({
method: 'GET',
url: 'http://127.0.0.1:8081/server/getUserList',
success(res) {
console.log(res.data)
tempThis.list = res.data
}
})
}
}
在发起request之前使用变量接收this的引用,然后在success中就可以根据临时变量的引用修改原先this指向的内存地址的信息;