1 axios -> 基于Promise对象 -> async & await
2 create阶段 -> 返回Promise对象 -> 返回的数据可以直接解构【数据处理】
- 要写入实例的数据(即页面渲染使用的数据),需要用配置参数data接收
3 import axios from 'axios';
4 多次导入、使用的axios -> 将axios放在原型链上
import axios from 'axios';
Vue.prototype.axios = axios;
5 请求方法的别名
-
axios.request(config)
-
axios.get(url[, config])
-
axios.delete(url[, config])
-
axios.head(url[, config])
-
axios.options(url[, config])
-
axios.post(url[, data[, config]])
-
axios.put(url[, data[, config]])
-
axios.patch(url[, data[, config]])
6 拦截器
axios.interceptors.request.use(config => {
return config;
}, error => {
return Promise.reject(error);
});
axios.interceptors.response.use(response => {
return response;
}, error => {
return Promise.reject(error);
});
6.1 请求拦截应用
axios.interceptors.request.use(config => {
let token = sessionStorage.getItem('userTk');
if (token) {
config.headers.Authorization = token
}
return config
}, error => {
return Promise.reject(error);
});
6.2 响应拦截应用
axios.interceptors.response.use(response => {
if (response.data.code === '200') {
Auth.setToken(sessionStorage.getItem('userId'))
}
return response;
},
error => {
console.warn(error);
console.warn(error.response);
if ((error.response.status && error.response.status === 401) || error.response.statusCode === 401) {
Auth.removeToken(sessionStorage.getItem('userId'));
sessionStorage.clear();
router.replace('/login')
return Promise.reject('身份已过期,请重新登录!');
}
if(error.response && error.response.status === 500)
return Promise.reject('服务异常,请稍后重试!');
});
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)