1.安装:

进入到工程根目录下,然后 运行命令安装:

npm i axios -S

2.在src/util/request.js:

import axios from 'axios'   //导入

const request = axios.create({ //创建一个request对象
baseURL: '/api', // 注意!! 这里是全局统一加上了 '/api' 前缀,也就是说所有接口都会加上'/api'前缀在,页面里面写接口的时候就不要加 '/api'了,否则会出现2个'/api',类似 '/api/api/user'这样的报错,切记!!!
timeout: 5000
})

//请求拦截器,在往后台发送数据前做一些处理
// request 拦截器
// 可以自请求发送前对请求做一些处理
// 比如统一加token,对请求参数统一加密
request.interceptors.request.use(config => {
config.headers['Content-Type'] = 'application/json;charset=utf-8';

// config.headers['token'] = user.token; // 设置请求头
return config
}, error => {
return Promise.reject(error)
});

//响应拦截器,设置从后台请求一些数据后,对其进行处理
// response 拦截器
// 可以在接口响应后统一处理结果
request.interceptors.response.use(
response => {
let res = response.data;
// 如果是返回的文件
if (response.config.responseType === 'blob') { //如果时文件的话,直接返回
return res
}
// 兼容服务端返回的字符串数据
if (typeof res === 'string') { //如果是string的话,会进行JSON.parse,把json字符串变为json对象
res = res ? JSON.parse(res) : res
}
return res;
},
error => { //如果出现error,就打印一个error的日志
console.log('err' + error) // for debug
return Promise.reject(error)
}
)


export default request //最后将请求导出来


//1.先创建,再对发出的请求做处理,再对收到的响应做处理,最后将其导出

 3.在main.js中使用:

加入代码:

import request from "./util/request";   //1、导入

Vue.prototype.request=request  //2.使用

加入后main.js代码:

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import './assets/gloable.css'
// import 'amfe-flexible';
import 'lib-flexible/flexible'
import request from "./util/request";   //1、导入


Vue.config.productionTip = false

Vue.use(ElementUI, {size:"mini"});   //{size:"mini"}设置控件大小

Vue.prototype.request=request  //2.使用

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

 4.在Home.vue中使用:

使用代码:

 

加入后的Home.vue代码:

 

posted on 2022-06-19 20:13  大话人生  阅读(618)  评论(0编辑  收藏  举报