Vue项目 vue.config.js配置 & request.js一次封装axios

vue.config,js

module.exports = {
  publicPath: './',
  lintOnSave: false,//每次保存代码的时候是否启动eslint
  devServer: {
    host: '127.0.0.1',
    port: 8080,
    open: true,//项目启动时自动打开浏览器
    proxy: {
      '/api': {// '/api'是代理的标识 url前面的/api是使用代理的
        target: 'http://testapi.....cn/',//接口地址
        changeOrigin: true,//跨域
      }
    }
  },
  configureWebpack: {
    plugins: [
    ],
  },
};

common > api > request.js

import axios from 'axios'
import { MessageBox } from 'element-ui'

//默认请求头
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'

//创建axios对象
const service = axios.create()

//请求拦截器
service.interceptors.request.use(req => {
  req.headers['Cathe-Control'] = 'no-cache' //访问此页面时 不会在internet的临时页面中留下备份
  return req
}, error => {//没拦截上
  Promise.reject(error)
})

//响应拦截器
service.interceptors.response.use(res => {
  //未设置状态码则默认成功状态
  if (res.request.responseType == 'blob') {
    return res.data
  }
  const code = res.data.meta.code

  if (code === '50002') { //如果获取到错误信息
    MessageBox.confirm('登录状态已过期,请重新登录', '系统提示', {
      confirmButtonText: '重新登录',
      cancelButtonText: '取消',
      type: 'warning'
    }).then(() => {
      window.location.href = '/home'
    }).catch((err) => {
      console.log(err)
    })
    return Promise.reject('error')
  } else {//如果没有错误信息
    return res.data
  }
}, error => {//没拦截上
  return Promise.reject(error)
})

export default service;

common/api/webConfig.js

import request from './request'

export default {
  //请求网站配置
  webConfig() {
    return request({
      url: '/api/setting/get'
    })
  }
}

components>foot>Foot.vue

import request from './request'

export default {
  //请求网站配置
  webConfig() {
    return request({
      url: '/api/setting/get'
    })
  }
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值