1.安装axios
npm install axios
# 或
yarn add axios
2.创建request.js + api.js
// request.js
import axios from "axios";
let instance = axios.create({
baseURL: "url",
timeout: 5000
});
// http request 拦截器
instance.interceptors.request.use(
(config) => {
// 修改请求头
if (config.url === "/wechatUsers/PCLogin") {
config.headers["Content-Type"] = "application/x-www-form-urlencoded";
}
const token = sessionStorage.getItem("token");
if (token) {
// 判断是否存在token,如果存在的话,则每个http header都加上token
config.headers["x-auth-token"] = token; //请求头加上token
}
return config;
},
(err) => {
return Promise.reject(err);
}
);
// http response 拦截器
instance.interceptors.response.use(
(response) => {
return response.data;
},
//接口错误状态处理,也就是说无响应时的处理
(error) => {
return Promise.reject(error.response.status); // 返回接口返回的错误信息
}
);
export default instance
api.js
import request from './request'
import qs from 'qs'
// 首页精品推荐数据请求
export const JingpinApi = () => request.get('/products/recommend')
// 微信登录(这个接口必须用qs对数据进行格式化)
export const WeixinLoginApi = (params) => request.post(`/wechatUsers/PCLogin`, qs.stringify(params))