当前位置:首页 » 《资源分享》 » 正文

前端axios全局配置 请求拦截器 响应拦截器 封装各种请求方式

9 人参与  2024年09月13日 09:21  分类 : 《资源分享》  评论

点击全文阅读


axios全局配置 请求拦截器和响应拦截器 封装各种请求方式

在Vue项目中使用axios时,封装请求方式、请求拦截器和响应拦截器是一个良好的实践。以下是一个简单的axios封装的例子,包括GET、POST请求,以及请求拦截器和响应拦截器。

一、封装axios文件

1.封装axios文件,请求头和响应头做不同处理

安装了axios

npm install axios

封装axios

import axios from 'axios'     //引入import { Message } from 'element-ui';let baseURL = ''  //线下// let baseURL = '/admin'  //线上let config = {  baseURL: baseURL,  withCredentials: true, // 跨域  timeout: 30000       //设置最大请求时间}const _axios = axios.create(config)/* 请求拦截器(请求之前的操作) */_axios.interceptors.request.use(  config => {      //如果有需要在这里开启请求时的loading动画效果      config.headers.token = window.localStorage.getItem('token') //添加token,需要结合自己的实际情况添加,    return config;  },  err => Promise.reject(err));/* 响应拦截器即异常处理 */_axios.interceptors.response.use(  response => {      // 如果返回的状态码为200,说明接口请求成功,可以正常拿到数据             // 否则的话抛出错误        if (response.status === 200) {                      return Promise.resolve(response);              } else {                      return Promise.reject(response);              }      },  error => {    // 状态码判断处理    if(error.response.status == 500){        Message('请求服务器错误')    }else if(error.response.status == 401){        Message('token过期,请重新登录')        // router.replace({                                //     path: '/login',                                // });        setTimeout(()=>{          window.location.href= 'https://sys.ycyd777.com/login'        },1500)        // this.$router.path("/login");    }else{        Message(`'连接错误'${error.response.status}`);    }    return Promise.reject(error);      });//封装post,get方法const http = {  get(url='',params={}){    return new Promise((resolve, reject) => {      _axios({        url,        params,        headers:{'Content-Type': 'application/json;charset=UTF-8'},        method: 'GET'      }).then(res => {        resolve(res.data)        return res      }).catch(error => {        reject(error)      })    })  },  post(url='',params={}){    return new Promise((resolve, reject) => {      _axios({        url,        data:params,        headers:{'Content-Type': 'application/json;charset=UTF-8'},        method: 'POST'      }).then(res => {        resolve(res.data)        return res      }).catch(error => {        reject(error)      })    })  }}export default http

2.封装不同请求方法,包括请求头部content-type。包括get post请求方式

二、请求后台接口api

在写具体接口api时候,直接定义不同method,即可对应不同request请求方法和请求头部content-type

import axios from '../axios/axios'//设置个对象,就不用一个个暴露了,直接暴露对象let serverApi = {};/* 获取列表 *///查询列表,详情就是get/* /api/getlist是请求接口地址,有http.js里面的Ip加上,如:http:192.168.0.111:9090//api/getlist  */// apiFun.getlist = function(params) {let api = 'api/'   serverApi.getAdmin = function(params) {  return axios.post(api+'/api.sys.Company_user_read_lz/login', params)}// serverApi.getBaiduToken = function(params) {//   return axios.post(api+'/api/rest/2.0/ocr/v1/vehicle_license', params)// }// 菜单列表serverApi.companyModuleFindTree = function(params) {  return axios.post(api+'/api.sys.Company_module_read_lz/findTree', params)}serverApi.companyModuleList = function(params) {  return axios.post(api+'/api.sys.Company_module_read_lz/getTree', params)}// 角色管理--设置权限serverApi.roleSetPower = function(params) {  return axios.post(api+'/api.sys.Company_role_lz/setPower', params)}

总结:封装其实是非常简单的,往往在做一个新的项目都会用到这一步,希望都能去手写一遍,这样在以后的项目中就能得心应手的使用啦!

七牛云、阿里云和腾讯云云存储基础环境搭建教程

史上最全CSS命名规则总结及公用常见的CSS前端整理小知识


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/159107.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 军训前,童养媳拿我的病历本给心上人叠纸飞机后,我退婚了完结爽文_杨鹤童养媳阿鹤一口气完结_小说后续在线阅读_无删减免费完结_
  • 未婚夫女兄弟把婚车改成宠物灵车,我反手让她的宾利变破烂最新阅读_魏成鸣乔诗诗林书妍小编推荐_小说后续在线阅读_无删减免费完结_
  • 军训当天男友为校花虐功勋犬,重生后我杀疯了潜力榜_顾野杜璇闻言大结局_小说后续在线阅读_无删减免费完结_
  • 天塌了!大佬们全被我捡回家了阿昭,小白,李惊雪小说整本+后续(阿昭,小白,李惊雪)清爽版阅读
  • 重生八零,我笑看真千金用土气布料卖港商免费阅读_妹妹姜雅沈俊爆款_小说后续在线阅读_无删减免费完结_
  • 秦昭:+后续人物讨喜无套路全集手握一把刀,砍翻万道!
  • 狸奴抓伤阿娘后,我和爹提议换个娘后续_阿爹阿娘宁王最新阅读_小说后续在线阅读_无删减免费完结_
  • 盛夏没有晴天小说(阮苏梨,傅屿安,宋颖)小说结尾+隐藏篇章(盛夏没有晴天阮苏梨,傅屿安,宋颖)畅享阅读
  • 全书浏览天降好运?村西头疯婆子是神医!(李萍萍周大孙月娘)_天降好运?村西头疯婆子是神医!(李萍萍周大孙月娘)全书结局
  • 校园星芒爱与科幻的交织(苏然林悦)全书浏览_校园星芒爱与科幻的交织全书浏览
  • 包浆修复师从核到银河(苏星摇豆汁儿于乾)_包浆修复师从核到银河
  • 小说大结局小说风入江云小说已更新+特别篇(柳江云,喜鹊,萧桉)纯净版

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1