引入 axios 包
--> 写一个申请出错时用于揭示的办法

--> 通过 create 创立 axios 申请

----> 给 axios 配置根本信息 [baseURL(域名),timeout(超时工夫)]

--> 通过 axios.interceptors.request.use 配置申请拦挡,两个参数 config 能够配置一些信息 token 等,error 示意申请出错->抛出异样

--> 通过 axios.interceptors.response.use 配置响应拦挡, 两个参数 res & error ,res 示意服务端响应胜利状态码为 200, error 示意申请出错->抛出异样,须要依据错误码执行对应的操作(404....)

代码如下:

import axios from "axios";const errTips = msg => {  alert(msg)}const service = axios.create({  baseURL: 填写自家域名,  timeout: 10000})//申请拦挡service.interceptors.request.use(  config =>{    //获取到缓存..中的token增加到申请头    let token = 'ssss'       config.headers.token = token    return config  },  err => {    errTips(err)    return Promise.reject(err)  })//响应拦挡service.interceptors.response.use(  res => {  //代表网络申请胜利了,stutas == 200    //判断接口返回的数据, 这里咱们后端也加了判断返回的 code 不等于 200 就没通过后端的校验    if(res.data.code !== 200){      errTips(res.data.msg)      return Promise.reject(res.data)   //抛出异样    }else{      return Promise.resolve(res.data)    }  },  error => {   //网络申请出错 判断状态码做出相应的操作    let { response } = error    switch (response.data.status){  //能够独自封装进来      case 404:         errTips( `${response.data.status}-->${response.data.message}`)        break;      case 403:        errTips( `${response.data.status}-->${response.data.message}`)        break;      default:        errTips( `${response.data.status}-->${response.data.message}`)    }    return Promise.reject(error)  })export default service

申请封装好之后就能够封装对接口申请的 api 文件了,示例如下:

import request from '@/utils/request'export default{  apiGet(url, data){    return request({      url,      params: data,      method: 'get'    })  },  apiPost(url, data){    return request({      url,      data,      method: 'post'    })  }}

接下来间接在页面引入就能应用了,示例如下:

<template>  <div class="containter">    <button @click="toGet">点我</button>    <button @click="toPost">post点我</button>  </div></template><script>import request from '@/api/api.js'export default {data () {  return {  }},methods: {  toGet(){    request.apiGet('pc/fee/bill/load-scheme',{      schoolId: '50899f90f9e211e7a9192c4d54595581',      studentId: '',      billId: '1524272640494178304'    }).then(res => {      console.log('申请胜利',res);    }).catch(err => {      console.log('申请失败',err);    })  },  toPost(){    request.apiPost('pc/bill/classification/list-page',{      startTime: '',      endTime: '',      name: '',      schoolId: '50899f90f9e211e7a9192c4d54595581',      page: 1,      row: 10    }).then(res => {      console.log('申请胜利', res);    }).catch(err => {      console.log('申请失败', err);    })  }}}</script><style scoped></style>

欢送交换!