axios/index.js
import axios from 'axios';
import { Message } from 'element-ui';
import router from '../router';
// 跨域
axios.defaults.withCredentials = true
// 创建axios实例
const instance = axios.create({
//请求根路径
baseURL: 'http://localhost:8080',
timeout: 5000,
})
// request 请求拦截器
instance.interceptors.request.use(
config=>{
// 设置header
config.headers["Content-Type"] = "application/x-www-form-urlencoded";
config.headers["Content-Type"] = "application/json; charset=UTF-8";
// 让每一个请求携带自定义token
if (sessionStorage.getItem("token")) {
// header添加token
config.headers["Authorization"] = sessionStorage.getItem("token")
}
return config;
},
error => {
return Promise.reject(error);
}
);
// response 响应拦截器
instance.interceptors.response.use(
response => {
return response;
},
error => {
// 错误信息提示
if (error.response.status == 400) {
Message({
message: "参数信息有误",
center: true
});
return;
} else if (error.response.status == 401) {
Message({
message: "请重新登陆",
center: true
});
router.push("/login");
return;
} else if (error.response.status == 404) {
Message({
message: "用户不存在",
center: true
});
return;
} else if (error.response.status == 500) {
Message({
message: "服务器内部错误",
center: true
});
return;
} else if (error.response.status == 560) {
Message({
message: "数据库异常",
center: true
});
return;
}
// debug 模式下打印异常
console.log("err"+ error);
Message({
message: error.message,
type: "error",
duration: 5 * 1000
});
return Promise.reject(error);
}
);
// 导出 axios实例
export default instance
axios/api.js
import instance from "./index";
// 导入 qs库
import qs from 'qs';
// 封装 axios 函数
// 用户登陆
export function userLogin(username,password) {
let data = JSON.stringify({
username: username,
password: password,
})
return instance.post('/user/login',data)
}
// 验证token是否过期
// export function overdueToken(token) {
// let data = JSON.stringify({
// token: token
// })
// return instance.post()
// }
// 验证邮箱
export function sendMail(mail) {
let data = JSON.stringify({
mail: mail
})
return instance.post('/sendMail',data)
}
// 用户注册
export function register(formRegister) {
let data = JSON.stringify({
username: formRegister.username,
password: formRegister.password,
mobile: formRegister.mobile,
mail: formRegister.email,
code: formRegister.code
})
return instance.post('/user/register',data)
}
// 获取用户信息
export function getUserInfo(username) {
return instance.get(`/user/getUserInfo?token=${username}`)
}
// 修改头像
export function updateAvatar(updateData) {
let data = JSON.stringify({
token: updateData.username,
avatar: updateData.avatar
})
return instance.post('/user/updateAvatar',data)
}
// 用户