axios标准封装

// src/utils/request.js
import axios from 'axios'
// 自定义axios
const ins = axios.create({
  baseURL: 'http://121.89.205.189/admin',
  timeout: 6000
})

// 自定义拦截器
// 请求拦截器
ins.interceptors.request.use((config) => {
  config.headers.token = localStorage.getItem('token') || ''
  return config
}, error => Promise.reject(error))

// 响应拦截器
ins.interceptors.response.use((response) => {
  if (response.data.code === '10119') { // +++++++++++++++++++++
    window.location.href = "/#/login"
  }
  return response.data
}, error => Promise.reject(error))

// 自定义各种数据请求 axios({})
export default function request (config) {
  const { url = '', method = '', data = {}, headers = {} } = config
  switch (method.toUpperCase()) {
    case 'GET':
      return ins.get(url, { params: data })
    case 'POST':
      // 表单提交  application/x-www-form-url-encoded
      if (headers['content-type'] === 'application/x-www-form-url-encoded') {
        // 转参数 URLSearchParams/第三方库qs
        const p = new URLSearchParams()
        for (const key in data) {
          p.append(key, data[key])
        }
        return ins.post(url, p, { headers })
      }
      // 文件提交  multipart/form-data
      if (headers['content-type'] === 'multipart/form-data') {
        const p = new FormData()
        for (const key in data) {
          p.append(key, data[key])
        }
        return ins.post(url, p, { headers })
      }
      // 默认 application/json
      return ins.post(url, data)
    case 'PUT': // 修改数据 --- 所有的数据的更新
      return ins.put(url, data)
    case 'DELETE': // 删除数据
      return ins.delete(url, { data })
    case 'PATCH': // 更新局部资源
      return ins.patch(url, data)
    default:
      return ins(config)
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值