当前位置:   article > 正文

vue2 项目中axios二次封装以及拦截器 (全篇超级详细哦 ) 新手小白也适合哦_vue2封装axios请求

vue2封装axios请求

目录

一、基础配置 首先全局安装axios

 二、附图创建一个名为request.js的文件,放在utils下(request名称可以根据自己喜好修改哦)

  三、直接上封装代码,详细注释介绍已经写在代码里了,可以直接复制,然后根据自己需求去进行修改

四、需要注意的是 拦截器的状态,根据后台返回的数据需要去处理一下

五、上面axios已经封装完闭了 ,需要创建一个api的文档(文档清晰一点找起来也不是很费劲)

六、在api/user.js   简单封装get,post请求

 


一、基础配置 首先全局安装axios

npm install axios

 二、附图创建一个名为request.js的文件,放在utils下(request名称可以根据自己喜好修改哦)

  三、直接上封装代码,详细注释介绍已经写在代码里了,可以直接复制,然后根据自己需求去进行修改

  1. import axios from 'axios';
  2. // 基本配置
  3. const instance = axios.create({
  4. baseURL: 'http://localhost:3000/', // 根据实际情况修改API地址
  5. timeout: 5000 // 设置超时时间,单位为ms
  6. });
  7. // 请求拦截器
  8. instance.interceptors.request.use(config => {
  9. config.headers['Authorization'] = localStorage.getItem('token'); // 设置请求头部分,这里举例使用了localStorage存储的token作为身份标识
  10. return config;
  11. }, error => {
  12. console.log(error);
  13. return Promise.reject(error);
  14. });
  15. // 响应拦截器
  16. instance.interceptors.response.use(response => {
  17. const data = response.data;
  18. if (data && data.code !== 200) { // 根据接口返回的状态码判断是否有错误
  19. alert(`Error code ${data.code}: ${data.message}`); // 自定义错误提示
  20. return Promise.reject(new Error(data.message));
  21. } else {
  22. return data;
  23. }
  24. }, error => {
  25. console.log(error);
  26. return Promise.reject(error);
  27. });
  28. export default instance;

四、需要注意的是 拦截器的状态,根据后台返回的数据需要去处理一下

  1. //响应拦截处理 响应拦截器:包含两个函数(一个是成功返回的函数,一个是失败的返回的函数)
  2. instance.interceptors.response.use(res => {
  3. // 我们一般在这里处理,请求成功后的错误状态码 例如状态码是500404403
  4. // res 是所有相应的信息
  5. console.log(res)
  6. return res.data
  7. }, err => {
  8. let { res } = err
  9. if (res) {
  10. switch (res.status) {
  11. case 401:
  12. (根据状态去进行提示,以下状态都是O)
  13. break
  14. case 403:
  15. break
  16. case 404:
  17. break
  18. case 500:
  19. break
  20. }
  21. } else {
  22. if (!window.navigator.onLine) {
  23. //断网处理:跳转到断网页面
  24. return
  25. }
  26. }
  27. // 服务器响应发生错误
  28. return Promise.reject(err)
  29. })

五、上面axios已经封装完闭了 ,需要创建一个api的文档(文档清晰一点找起来也不是很费劲)

六、在api/user.js   简单封装get,post请求

  1. //接口
  2. //引入axios
  3. import request from '../utils/request'// 这里是引入咱们的axios用axios来进行异步接口请求
  4. //比如说接口为注册接口
  5. export function register(){
  6. return request({
  7. url:'/user/register',
  8. method:'post',
  9. data, // 一般post请求,我们习惯使用 data属性来传参
  10. })
  11. }
  12. export function login(){
  13. return request({
  14. url:'/user/login',
  15. method:'get',
  16. params, //一般get请求,我们习惯使用params属性来传参
  17. })
  18. }
  19. //以上为案例

      但是我们的   url:'/user/register',  是这样的地址,实际上我们是把接口在封装axios的时候已经把接口的前缀写上了,所以我们这边引入地址的时候直接请求  /  后面的接口参数

      拼接起来是 http://localhost:3000/user/register    

感觉有用的小伙伴记得点赞,让作者更有信心去给大家分享开发中遇到的问题哦!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/924460
推荐阅读
相关标签
  

闽ICP备14008679号