专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

vue 接口get,post,token封装

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 1:03:36       共计:3637 浏览

import store from '../store'

import axios from 'axios'// 引入axios



// 环境的切换 开发环境(development)使用的是测试接口  和   生产环境(production)使用的是上线接口

// eslint-disable-next-line eqeqeq

if (process.env.NODE_ENV == 'development') {

 // 设置默认路径

 axios.defaults.baseURL = 'http://localhost:8080/'

}

// eslint-disable-next-line eqeqeq

if (process.env.NODE_ENV == 'production') {

 axios.defaults.baseURL = 'https://www.begon.cn/'

}

axios.defaults.timeout = 5000 // 加载不出来5秒之后就是加载失败

axios.interceptors.request.use(

 config => {

   config.headers = { DeviceType: 'ejk5', token: store.state.Authorization } // 可每次发送请求之前的逻辑处理 比如判断token

   return config

 }

)

// axios.interceptors.response.use(

//     response=>{

//       return response;

//     },

//     error=>{

//         if(error.response.status){



//         }

//     }

// )



// 使用promise返回axios请求的结果

export function get (url, params) {

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

   axios.get(url, {

     params: params

   }).then(res => {

     resolve(res)

   }).catch(err => {

     reject(err)

   })

 })

};



export function getToken (url, params) {

 console.log(store.state.Authorization)

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

   axios.get(url, {

     params: params,

     headers: {token: store.state.Authorization, authorization: store.state.Authorization}

   }).then(res => {

     resolve(res)

   }).catch(err => {

     reject(err)

   })

 })

};



export function post (url, params) {

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

   axios.post(url, params).then(res => {

     resolve(res.data)

   }).catch(err => {

     reject(err.data)

   })

 })

}

export function postToken (url, params) {

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

   // eslint-disable-next-line func-call-spacing

   axios.post

   // eslint-disable-next-line no-unexpected-multiline

   (

     url,

     params,

     {

       headers: {'token': store.state.Authorization}

     }

   ).then(res => {

     resolve(res.data)

   }).catch(err => {

     reject(err.data)

   })

 })

}

// post请求

export function postRequest (url, data = {}, method = 'post') {

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

   axios({

     url: url,

     method: method,

     headers: {

       'Content-Type': 'application/json'

     },

     data: data

   })

     .then(res => {

     // 成功

       resolve(res.data)

     })

     .catch(res => {

       // 失败

       reject(res)

     })

 })

}

// 添加请求拦截器,在请求头中加token

axios.interceptors.request.use(

 config => {

   if (localStorage.getItem('Authorization')) {

     config.headers.Authorization = localStorage.getItem('Authorization')

   }



   return config

 },

 error => {

   return Promise.reject(error)

 })




版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:互联网项目交接清单 | ·下一条:详解vuex数据传输的两种方式及this.$store undefined的解决办法

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有