发表于: 2020-04-18 21:12:43
2 1940
今天完成的事情:
1.推进任务
明天计划的事情:
1.推进任务
遇到的问题和收获:
import axios from "axios"
import qs from 'qs'
import router from "../router";
//封装axios
let service = axios.create({
timeout: 5000, //超时配置 3秒
responseType: 'json', // 响应数据格式
responseEncoding: 'utf8', // 响应数据编码
});
//拦截
service.interceptors.request.use(
config => {
console.log('request请求成功');
console.log(config);
// config.method === 'post' || 'get' || 'put' ?
config.method === 'post' ?
config.data = qs.stringify({...config.data})
: config.params = {...config.params}
config.headers['Content-Type'] = 'application/x-www-form-urlencoded'
return config;
},
error => {
console.log(error);
console.log('request请求失败');
return Promise.reject();
}
);
service.interceptors.response.use(
response => {
console.log('response响应成功');
console.log(response);
let role = sessionStorage.getItem('sid')
if (response.data.code === 0) {
console.log('response.status为200');
// 只有在当前路由不是登录页面才跳转
if (router.currentRoute.path !== '/login' && !role) {
alert('请登录后再操作!')
router.push({
path: '/login',
// query: {redirect: router.currentRoute.fullPath}
query: {redirect: router.currentRoute.fullPath}
})
}
return response;
} else {
Promise.reject();
}
},
error => {
console.log('response响应失败');
console.log(error);
// switch (error.response.status) {
// case 401:
// // 返回 401 清除token信息并跳转到登录页面
// // store.commit(types.LOGOUT);
// window.sessionStorage.removeItem('sid')
//
// // 只有在当前路由不是登录页面才跳转
// router.currentRoute.path !== 'login' &&
// router.replace({
// path: 'login',
// query: {redirect: router.currentRoute.fullPath}
// })
// }
return Promise.reject();
}
);
export default service;
封装axios实例和request、response拦截
import service from "./request";
//封装接口
export const searchData = params => {
service({
method: 'get',
url: '/api/a/article/search',
params
})
return service
}
引入,并封装接口
//获取列表信息
async getArticleList() {
let res=await searchData(this.queryInfo)
console.log(res);
组件中使用
不过得出的效果貌似不是想要的数据,不能赋值给获取列表信息
再研究下
评论