1、在我的项目中装置axios
vue add axios
2、main.js
import './plugins/axios' // 装置axios结束主动新增此行
3、./plugins/axios.js
import axios from 'axios'import qs from 'qs'import { ElMessage} from 'element-plus';const http = {}const Axios = axios.create({ timeout: 200000, withCredentials: true, // 主动携带cookie baseURL: '', // 接口地址 headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }, validateStatus(status) { return status >= 200 && status < 300 }});// 申请拦挡Axios.interceptors.request.use(config => { // 头部如需带上token,在此处配置 return config}, err => { return Promise.reject(err)})// 响应拦挡Axios.interceptors.response.use(res => { return res;}, err => { switch (err.response.status) { case 400: ElMessage({ showClose: true, message: '申请出错', // 此处能够换成接口返回的报错信息 type: 'error' }); break; case 401: ElMessage({ showClose: true, message: '受权失败,请从新登录', // 此处能够换成接口返回的报错信息 type: 'error' }); return; case 422: ElMessage({ showClose: true, message: '参数谬误,请查看填写的参数', // 此处能够换成接口返回的报错信息 type: 'error' }); return; case 403: ElMessage({ showClose: true, message: '回绝拜访', // 此处能够换成接口返回的报错信息 type: 'error' }); break; case 404: ElMessage({ showClose: true, message: '申请谬误,未找到该资源', // 此处能够换成接口返回的报错信息 type: 'error' }); break; case 500: ElMessage({ showClose: true, message: '请从新登录', // 此处能够换成接口返回的报错信息 type: 'error' }); break; } return Promise.reject(err);})http.get = function(url, data = {}) { return new Promise((resolve, reject) => { Axios.get(url, { params: data }).then(res => { resolve(res); }).catch(err => { reject(err); }) })}http.del = function(url, data = {}) { return new Promise((resolve, reject) => { Axios.delete(url, { params: data }).then(res => { resolve(res); }).catch(err => { reject(err); }) })}http.post = function(url, data) { return new Promise((resolve, reject) => { Axios.post(url, qs.stringify(data)).then(res => { resolve(res); }).catch(err => { reject(err); }) })}export default http
4、封装申请接口
url.js:申请的门路
index.js: 封装的接口办法
url.js
const url = { 'Login': '/login', 'Test': '/test',}module.exports = url;
index.js
import axios from '@/plugins/axios'import url from './url.js'let API = {};// 登录API.login = function(data) { return axios.post(url.Login, data);}// 获取测试内容API.getTest= function() { return axios.get(url.Test);}export default API
5、调用接口
import API from '@/api/index.js' export default { name: 'login', data() { return { adminForm: { username: '', password: '' }, } }, methods: { submitForm() { let self = this; API.login(self.adminForm).then(res => { console.log(res) }) } } }