• 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 }
  • 相关阅读:
    (转)Esri微博地址收录
    使用liquibasemavenplugin实现持续数据库集成
    CenOS系统中安装Tomcat7并设置为自启动服务
    Androidx86虚拟机安装配置全攻略
    jdk8根据某一属性去重方法 Collectors.collectingAndThen
    [转]恶心的C语言strtok函数
    人生七日忠告 人生征途须记
    VTK中二维Delaunay三角剖分
    Python编程题41原地反转字符串
    Python编程题42除自身以外元素的乘积
  • 原文地址:https://www.cnblogs.com/dhjy123/p/15472717.html
Copyright © 2020-2023  润新知