项目搭建 请求接口封装和全局超时处理

//1.引入相关依赖
import axios from "axios";
import { Toast } from 'vant';
import Vue from 'vue'

// 2.配置服务器地址 超时时间
const $http = axios.create({
    // 公共的请求地址配置在这里
    baseURL: Vue.prototype.IP, // 公司接口地址
    // 请求超时时间(单位ms)
    timeout: 5000
})
//3.配置请求拦截器 
axios.interceptors.request.use(req => { //此处拦截请求,把请求数据处理得更清爽,更简洁,交给后端
  let token = localStorage.getItem('token')
  if (token) {//如果有token,就把token放在请求数据的头部
      req.headers.token=token
  }
  if (req.methods === 'post') {//如果请求的方式是post,那就用qs模块处理掉数据
      req.data=qs.stringify(req.data)
  }
  return req//发送给后端经过处理的值
},error => {
  if(error.message.includes('timeout')){   // 判断请求异常信息中是否含有超时timeout字符串
    Toast('请求超时,请稍后再试')           //使用vant UI组件的 Toast 给予提示
    return Promise.reject(error);        //如果有错就把错误原因返回
  }
  Toast('服务器请求失败,请稍后再试')
  return Promise.reject(error);//如果有错就把错误原因返回
}); 
//4.配置相应拦截器 
axios.interceptors.response.use(res => {//响应拦截器哦
  switch (res.status) {
      case 200:
          return res.data.data//如果是成功的响应,就把最核心的有用的数据返回
  }
}, err => Promise.reject(err)) //如果有错就把错误原因返回
    
// 5.导出接口
//园区概况
export const survey = (data) => $http.get('/basic/facts', {params: data}).then(({ data }) => data)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值