• axios 使用v2


    
    
    import axios from 'axios'
    import store from '@/store'
    import Qs from 'qs'
    import { getToken } from './auth'
    import constv from '@/config/constv'
    import { Modal, message as Message } from 'ant-design-vue/es'
    
    const service = axios.create({
      baseURL: `${constv.MIDDLE_OFFICE_PROXY_URL}admin/index/transfer`,
      timeout: 20000
      // transformRequest: params => Qs.stringify(params) // 参数格式化 qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }) => 'a=b&a=c'
      // paramsSerializer: params => Qs.stringify(params, { arrayFormat: 'repeat' }) // 参数格式化 qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }) => 'a=b&a=c'
    })
    
    const err = (error) => {
      return Promise.reject(error)
    }
    
    
    service.interceptors.request.use(config => {
      const formData = Qs.parse(config.data)
      const proxyUrl = { 'admin_center|proxy_url': '/secure' + config.url }
      if (config.method === 'get') {
        config.params = {
          ...config.params,
          ...proxyUrl,
          'admin_center|extract_query': 1
          // 以下两个参数用于下载文件流用到
          // 'admin_center|stream_resp': 1,
          // 'admin_center|resp_header_override': 1
        }
      }
      if (config.method === 'post') {
        config.data = Qs.stringify({ ...formData, ...proxyUrl })
      }
      const token = getToken()
      if (token) {
        config.headers['AuthValue'] = 'xxxxxxx:'
      }
      config.headers.common['token'] = token
      config.headers.common['way'] = constv.PROXY_WAY
      config.url = ''
      return config
    }, err)
    
    service.interceptors.response.use(response => {
      const result = response.data
      const message = result.message
    
      const code = result.errCode || result.code
      if (result.status === 'error') {
        Message.error(message.message)
        return Promise.reject(message.message)
      }
      if (code === 10200) {
        Modal.warning({
          title: '授权信息已过期,请重新登录',
          okText: '确定',
          onOk () {
            store.dispatch('Logout').then(() => {
              window.location.reload()
            })
          }
        })
      }
      return result
    }, err)
    
    export { service, axios }
  • 相关阅读:
    杨晓峰-Java核心技术-6 动态代理 反射 MD
    ARouter 路由 组件 跳转 MD
    领扣-5 最长回文子串 Longest Palindromic Substring MD
    算法 递归 迭代 动态规划 斐波那契数列 MD
    二叉树 遍历 先序 中序 后序 深度 广度 MD
    算法 数组中出现次数最多的数字 MD
    领扣-754 到达终点数字 Reach a Number MD
    领扣-1/167 两数之和 Two Sum MD
    文件 File 常见操作 工具 MD
    IO流 简介 总结 API 案例 MD
  • 原文地址:https://www.cnblogs.com/dhjy123/p/15472717.html
Copyright © 2020-2023  润新知