美文网首页
ts axios封装

ts axios封装

作者: 43e1f527c136 | 来源:发表于2023-02-16 20:09 被阅读0次

    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

    相关文章

      网友评论

          本文标题:ts axios封装

          本文链接:https://www.haomeiwen.com/subject/tsopkdtx.html