zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    为VMware虚拟机内安装的Ubuntu 16.04设置静态IP地址
    WPF入门教程系列二十三——DataGrid示例(三)
    WPF入门教程系列二十一——DataGrid示例(二)
    Google Nexus 5X刷机并root
    web调用摄像头拍照
    导出SQL SERVER 数据字典语句
    树莓派安装.Net Core3.1
    使用Open Live Writer写博客
    EFCore的外键级联删除导致的【可能会导致循环或多重级联路径】
    重新装Mysql数据的恢复办法,还原data文件夹下数据库
  • 原文地址:https://www.cnblogs.com/dhjy123/p/15472717.html
Copyright © 2011-2022 走看看