前言
第三章中封装了uni.request,达到前后端交互的时候,编码只需要关注代码逻辑本身,而不用重复书写重复的代码。
但是用原生的API还是有些局限性,例如没有拦截器。当然很多HTTP请求已经支持拦截器了,由于我们第二章中引入了uview,我们用uview推荐的请求方式。
正言
基本使用
<script>
export default {
onLoad() {
// 不带header
this.$u.post('http://www.example.com', {
id: 3,
menu: 1
}).then(res => {
console.log(res);
});
// 带上header(对象形式),由于header为第三个参数,如果不需要请求参数,第二个参数传一个空对象"{ }"即可
this.$u.get('http://www.example.com', {}, {
token: 'xyz'
}).then(res => {
console.log(res);
});
}
}
</script>
配置参数
配置参数的时候,需要调用$u.http.setConfig()
方法,传递一个对象作为参数。
- 强烈建议在此配置统一请求的
baseUrl
- 同时看情况是否开启(默认关闭)请求加载中的loading,该功能需要设置一个时间(默认800ms),如果超过此时间,请求尚未返回,则显示一个loading,直至返回后,取消loading。
说明:请求loading超时时间的意义为,一般情况下,请求会在几十毫秒返回,时间极短,无需loading,如果显示loading,会导致 动画一闪而过,体验不好。如果用户网络慢,或者服务器堵塞,可能一个请求需要几秒钟,这时请求达到设定时间(800ms), 就会显示loading,几秒钟后请求返回,loading消失。
以下为可选的配置参数,这个配置是一次配置,全局通用的<