ts axios封装

import axios from 'axios'

import { ElMessage  } from 'element-plus'

// import { getToken } from '@/utils/auth'



export  const request =(options:any)=> {

  return new Promise((resolve, reject) => {


    // create an axios instance

    const service = axios.create({

      // baseURL: process.env.BASE_API, // api 的 base_url

      // baseURL: '/api',

      baseURL: process.env.VUE_APP_BASE_URL,

      timeout: 2000 // request timeout

    })


    // request interceptor

    service.interceptors.request.use(

      (config:any) => {

        let token:string =''//此处换成自己获取回来的token,通常存在在cookie或者store里面

        if (token) {

          // 让每个请求携带token-- ['X-Token']为自定义key 请根据实际情况自行修改

          config.headers['X-Token'] = token


          config.headers.Authorization =  + token      

         }

        return config

      },

      error => {

        // Do something with request error

        console.log("出错啦", error) // for debug

        Promise.reject(error)

      }

    )


    // response interceptor

    service.interceptors.response.use(

       (response:any) => {

        return response.data

      },

      error => {

        console.log('err' + error) // for debug

        if(error.response.status == 403){

          ElMessage.error('错了')

        }else{

          ElMessage.error('服务器请求错误,请稍后再试')

        }

        return Promise.reject(error)

      }

    )

    // 请求处理

    service(options)

      .then((res) => {

        resolve(res)

      })

      .catch((error) => {

        reject(error)

      })

  })

}



export default request

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容