vue-admin-template 修改request.js

修改request.js

原文件中,请求拦截器要携带token、响应拦截器做了一些校验,在这里都不需要了,改成下面代码:

注意:

  • 返回数据中要有 status 属性
  • 返回数据中要有 message 属性
import axios from 'axios'
import { MessageBox, Message } from 'element-ui'

const service = axios.create({
  baseURL: "http://localhost:8080", // url = base url + request url
  withCredentials: true, // 发送 cookies 
  timeout: 5000 // request timeout
})



// response interceptor
service.interceptors.response.use(
  response => {
    const res = response.data

    if (res.status !== 0) { // ※※※※※※ 注意:返回数据中要有 status 属性
      Message({
        message: res.message || 'Error', // ※※※※※※ 注意:返回数据中要有 message 属性
        type: 'error',
        duration: 5 * 1000
      })


      return Promise.reject(new Error(res.message || 'Error'))
    } else {
      return response
    }
  },
  error => {
    console.log('err' + error) // for debug
    Message({
      message: error.message,
      type: 'error',
      duration: 5 * 1000
    })
    return Promise.reject(error)
  }
)

export default service

使用

引入 request.js

import request from '@/utils/request'

调用

登录:

request({
  url: '/login',
  data:this.loginForm,
  method: 'post',
})
.then((res) => {
  console.log(res);
  console.log(res.data)
  if(res.data.status == 0){
    this.$router.push({ path: this.redirect || '/' })
  }else{
    this.$message.error(res.data.message);
  }
  this.loading = false
})
.catch(function (error) {// 请求失败处理
  console.log(error);
  this.loading = false
});

其他请求:

request({
    url: '/patient/list',
    data:{
        name: this.name,
    },
    method: 'post',
}).then( (res) => {
    console.log(res.data.list);
    this.tableData=res.data.list
    this.total=res.data.total // 总共记录数
    this.loading=false // 取消loading
})
.catch(function (error) {// 请求失败处理
    console.log(error);
});

原文出处:https://malaoshi.top/show_1IX48sP029XE.html