使用axios优雅的发起网络请求

原文链接:https://www.jianshu.com/p/73585303fdc0

公司项目使用了vue作为技术栈,便理所应当地使用了官方推荐的axios进行网络请求,这里记录下axios的封装方法,以备以后也能优雅的使用。

ajax.js:

复制代码
/*引入axios*/
import axios from 'axios'

/*创建axios实例对象*/
const ajax = axios.create({
  baseURL: ajaxUrl,
  timeout: 30000
})

/*请求拦截器(请求之前的操作)*/
ajax.interceptors.request.use(
  config => {
    return config
  },
  /*错误操作*/
  err => {
    return Promise.reject(err)
  }
)

/*请求之后的操作*/
ajax.interceptors.response.use(
  config => {
    return config
  },
  err => {
    return Promise.reject(err)
 })

/*导出模块*/
export default ajax
复制代码

 

api.js:

复制代码
import ajax from '../libs/ajax'

const captcha = () => {
  return ajax.get(`app/captcha`)
}
const login = (params) => {
  return ajax.post(`auth/login`, params)
}

const apiList = {
  captcha,
  login  
}

export default apiList
复制代码

 

index.js:
将导出的api请求挂在到vue原型上

复制代码
import apiList from './api'

const install = function (Vue) {
  if (install.installed) return
  install.installed = true

  /*定义属性到Vue原型中*/
  Object.defineProperties(Vue.prototype, {
    $api: {
      get () {
        return apiList
      }
    }
  })
}

export default {
  install
}
复制代码

 

main.js:

/*引入index.js*/
import api from '.xxx' 

Vue.use(api)

 

按以上模板进行封装之后,就可以在需要的地方直接发起api请求了,如下:

this.$api.login(params).then(res => {
  /*请求成功后的操作*/
 }).catch(err => {
  /*请求失败后的操作*/              
 })

 

posted @   expworld  阅读(720)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示