首页 > 其他分享 >axios对后端请求统一封装及全局调用配置

axios对后端请求统一封装及全局调用配置

时间:2023-03-23 17:44:21浏览次数:144  
标签:axios 封装 对后 app http api import config

 以下为个人项目笔记:

 

 两个文件如下:

文件【main.js】
import { createApp } from 'vue' import App from './App.vue' import router from './router' // 导入elementplus 相关依赖 import 'element-plus/dist/index.css' import * as ElementPlusIconsVue from '@element-plus/icons-vue' import ElementPlus from 'element-plus' import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
const app = createApp(App) // 语言配置 中文 app.use(ElementPlus, {     locale: zhCn, }) for (const [key, component] of Object.entries(ElementPlusIconsVue)) {     app.component(key, component) }
// ===封装好的api在api文件夹中,如果在其他地方用,还需要一个个手动导入index.js api, 有没有办法设置全局呢,答案是有的,接下来在main.js中配置,如下: // 导入封装的api对象 import api from './api/index.js' // 将api对象设置为app的全局属性 app.config.globalProperties.$api = api
app.use(router).mount('#app')

 

 

文件【 /api/index.js 】
/*全局配置:针对axios对后端请求进行统一封装,方便后续维护管理*/ import axios from "axios" const http =axios.create({     // 配置baseURL     baseURL:'http://1xx.xx.4x8:18899',     // 配置响应成功时状态码     validateStatus:function(status) {         return true      } }) // 请求拦截器,在每个请求时都会执行该方法,并把请求配置中的对象传入到该方法中 //扩展说明:在后续的非登录请求时,都需要带上鉴权 http.interceptors.request.use(function(config){     if(config.url !=='/login/'){         config.headers['Authorization']='JWT ' + window.sessionStorage.getItem('token')     }     console.log('请求拦截器:',config);     return config }); // 响应拦截器 http.interceptors.response.use(function (response) {     // 2xx 范围内的状态码都会触发该函数。     // 对响应数据做点什么     console.log('响应数据:',response);     // if(response.status === 301){     //     // 在此处对项目中接口调用失败,做统一处理,后续一一介绍并操作     // }     return response;   })

export default{     // 登录接口     login(params){         // 以下接口地址地址会与上面的baseURL自动拼接         return http.post('/login/',params)     },     // 获取项目数据     getPros(){         return http.get('/projects/',{             headers:{             'Authorization':'JWT ' + window.sessionStorage.getItem('token')             }         })     } }

标签:axios,封装,对后,app,http,api,import,config
From: https://www.cnblogs.com/suhongzhen/p/17248308.html

相关文章

  • ESD二极管工作原理、封装、型号、选型(详解)
    常用静电防护保护器件——ESD二极管,对于电子工程师而言,并不陌生。在消费电子、家电、智能家居、可穿戴智能设备、汽车电子、安防、工业设备等产品领域中都能看到ESD二极管靓......
  • axios网络请求
     ?问题:如何添加token,解决鉴权问题 方案:通过登录页面,发送请求,获取到token值,并把token值存储(localStorage、sessionStorage、cookieStore),示例如下:<template>  <e......
  • axios文件下载!!!!
    前端download(){debugger;this.loading=true;axios.post('http://localhost:8081/brand_case/dao.do?method=ex......
  • 企业项目中js方法的封装和使用
    1.首先呢,具体的就不细说了,也没有办法细说,我在这里,将项目中js方法的大致结构,列一下给大家。2.3._Instance={4.5.//成员变量6.modelData:{},7._this:th......
  • SSM整合——表现层数据封装
    表现层数据封装设置统一数据返回结果类注意:Result类中的字段并不是固定的,可以根据需要自行增减提供若干个构造方法,方便操作 返回结果类packagecom.cqupt.controll......
  • 利用反射将获取的数据封装成对象
    publicclassMyServletextendsHttpServlet{@OverrideprotectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException......
  • 25.封装、继承、多态
    封装、继承、多态一、封装1.高内聚,低耦合高内聚就是类的内部数据操作细节自己完成,不允许外部干涉。低耦合就是仅暴露少量的方法给外部使用。2.数据的隐藏通常,应禁止......
  • 在Vue中发起axios请求成功,却被catch捕捉返回Network Error
    前端发起请求成功,后台接收处理返回,却被axios的catch捕获,没有走then函数。  最后添加了headers配置成功解决,如上,附上axios接口配置中文文档:axios中文文档|axios中文网......
  • 基于elementUI二次封装一个表格加上搜索的控件
    <template><!--组件属性:selection:表格是否可勾选querys:[搜索配置{label:"所属网关",//标......
  • Cookie的封装-2与Cookie 的注意事项
    Cookie的封装-2<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Cookie的封装</title></head><body><buttonid="cn">......