前后端分离项目中接口调用是页面中处理比较多的地方,vue官方文档推荐采用axios库进行接口调用,之前在项目中采用fetch、vue-resource, fetch库没有做拦截器处理,vue-resource文档虽然加了拦截器,但没有axios库使用方便(vue-resource不可以实例化、基于vue),下面简单介绍下axios的基本使用方法: 看一个最基本的axios请求示例:
import Vue from 'vue'
import axios from 'axios'
let instance = axios.create({
timeout: 10000,
validateStatus: function (status) {
return status == 200
},
data: {
token: sessionStorage.token || '',
},
params: {
token: sessionStorage.token || '',
}
})
instance.interceptors.response.use(function (response) {
// Do something with response data
let data = response.data.data;
return data
}, function (error) {
// Do something with response error
$notify(notifyMessage('error',error.message))
})
Vue.prototype.$get = window.$get = instance.get
Vue.prototype.$post = window.$post = instance.post
以上代码实例化了一个axios实例,限制请求的时长为10s,请求的data和param中都带了token参数,同时只返回状态码为200的数据,状态码不为200的添加提醒。
接下来看下在页面中如何调用接口的:
$get(url).then()
$post(url,data).then()