axios 调用接口方法
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。
1. 常规使用方法
axios.get('/user?ID=12345').then((response) => { console.log(response); }).catch((error) => { console.log(error); }); axios.post('/user', { firstName: 'Fred', lastName: 'Flintstone' }).then((response) => { console.log(response); }).catch((error) => { console.log(error); });
2. 通过向 axios
传递相关配置来创建请求
// 发送 POST 请求 axios({ method: 'post', url: '/user/12345', data: { firstName: 'Fred', lastName: 'Flintstone' } });
3. 使用组件化设置 axios 调用
// request组件,配置axios的请求拦截器和响应拦截器 import axios from "axios"; import { Message, Notification } from "element-ui"; import store from "../store"; import router from "../router"; import { requestTimeout } from '@/config/settings' // 创建axios实例 const service = axios.create({ timeout: requestTimeout, // baseURL: process.env.BASE_API, // api的base_url }); let kk = // 配置请求拦截器 service.interceptors.request.use( (config) => { const token = store.state.user.token // console.log('token', token) if(token){ config.headers['Authorization'] = 'bearer '.concat(token) } return config }, (err) => { const msg = (err.response && err.response.data.msg) || "未知错误" Message.error(msg) return Promise.reject(msg) } ); // 配置响应拦截器 service.interceptors.response.use( response => { if(response.data.code && response.data.code === -1){ const errMsg = response.data.msg || response.data.errMsg || response.data Notification.warning(errMsg) } return response.data }, err => { const { status } = err.response; const msg = err.response.data.msg || err.response.data.errMsg || err.response.data.message; // 以下的处理都是依据 http 状态码 !!! switch (status) { // *401时直接删除token,弹出错误,不做任何的请求 case 401: store.commit("REMOVE_TOKEN") router.push('/login') break; default: break; } Message.error(msg); console.log(err) return Promise.reject(msg); } ); export default service; // 接口文件,调用具体接口及设置参数传递的形式 import request from "@/utils/request"; // 获取字典表(接口设置示例) export const getDict = (params) => { return request({ url: "/api/dqgs/admin/dict", method: "get", params }); };