123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- import axios from 'axios'
- import qs from 'qs'
- import util from '@/js/util'
- import { TIME_OUT } from '@/config'
- import router from '@/router';
- import { Message } from 'element-ui'
- import { showLoading, hideLoading } from './loading';
- // 网络请求前拦截器
- axios.interceptors.request.use(resquest => {
- console.log(resquest)
- showLoading();
- // if(resquest && resquest.data && typeof (resquest.data) === 'object'){
- // 若每个接口需要添加时间戳时
- // resquest.data.currentDateTime = util.getFormatDate('yyyy-mm-dd hh:mm:ss')
- // }
- return resquest
- }, error => {
- console.log(error)
- return Promise.reject(error)
- })
- // 网络响应后拦截器
- // 响应拦截器
- axios.interceptors.response.use(
- response => {
- hideLoading();
- if (response && response.status === 200 || response && response.status === 304) {
- return Promise.resolve(response);
- } else {
- return Promise.reject(response);
- }
- },
- // 服务器状态码不是200的情况
- error => {
- hideLoading();
- if (error.response.status) {
- switch (error.response.status) {
- // 401: 未登录
- // 未登录则跳转登录页面,并携带当前页面的路径
- // 在登录成功后返回当前页面,这一步需要在登录页操作。
- case 401:
- Message.error('登陆信息失效,请重新登录')
- localStorage.removeItem("accessToken")
- router.replace({
- path: '/',
- query: { redirect: router.currentRoute.fullPath }
- });
- break;
- // 403 token过期
- // 登录过期对用户进行提示
- // 清除本地token和清空vuex中token对象
- // 跳转登录页面
- case 403:
- Message.error('登陆失效,请重新登录')
- // 清除token
- localStorage.removeItem("accessToken")
- // 跳转登录页面,并将要浏览的页面fullPath传过去,登录成功后跳转需要访问的页面
- setTimeout(() => {
- router.replace({
- path: '/',
- query: {
- redirect: router.currentRoute.fullPath
- }
- });
- }, 1000);
- break;
- // 404请求不存在
- case 404:
- Message.error('404 Not Found')
- break;
- // 其他错误,直接抛出错误提示
- default:
- Message.error('网络错误')
- }
- return Promise.reject(error.response);
- }
- // else {
- // Message.error('登陆失效,请重新登录')
- // localStorage.removeItem("accessToken")
- // router.replace({
- // path: '/',
- // query: { redirect: router.currentRoute.fullPath }
- // });
- // }
- }
- );
- // 数据统一处理来自网络及服务器的错误
- function checkStatus (response) {
- console.log("11123456")
- if (response && response.status === 200 || response && response.status === 304){
- // Message.success('请求成功')
- return response.data
- }
- // if (response && response.status === 401){
- // localStorage.removeItem("accessToken")
- // router.replace({
- // path: '/' // 到登录页重新获取token
- // })
- // Message.error('登陆失效,请重新登录')
- // }
- // if (response && response.status === 404){
- // router.replace({
- // path: '*' // 到登录页重新获取token
- // })
- // Message.error('404 Not Found')
- // }
- // if (response && response.status === 500){
- // router.replace({
- // path: '*' // 到登录页重新获取token
- // })
- // Message.error('服务器问题')
- // } else {
- // Message.error('登陆失效,请重新登录')
- // localStorage.removeItem("accessToken")
- // router.replace({
- // path: '/' // 到登录页重新获取token
- // })
- // return response && response.statusText || '网络错误'
- // }
- }
- // 处理来自程序的异常
- function checkCode (response) {
- console.log("chucuole")
- if (response.status && response.status !== 'ok'){
- response.error = response.error || '出错了!'
- }
- return response
- }
- let accessToken = localStorage.getItem("accessToken")
- // let accessToken = "evbOfyzBDlwwi2Tn8KTc5h3sWKsbrpbiazL7wYh7vyTs9KtJ1vANq6j3DmOwFjbL"
- // export default ({method = 'post', url = '', params = {}}) => {
- // return new Promise((resolve, reject) => {
- // axios[method.toLowerCase()](url, params).then(response => {
- // resolve(response)
- // }, err => {
- // reject(err)
- // }).catch(err => {
- // reject(err)
- // })
- // })
- // }
- export default {
- Tokenpost (url, data) {
- const params = data;
- return axios({
- method:'post',
- // url,
- url: `${url}?${qs.stringify(params)}`,
- timeout: TIME_OUT,
- data,
- // data: qs.stringify(data),
- headers:{
- 'Content-Type': 'application/json',
- // 'Content-Type':'application/x-www-form-urlencoded'
- }
- }).then(checkStatus).then(checkCode)
- },
- post (url, data) {
- if (!accessToken){
- accessToken = localStorage.getItem("accessToken");
- }
- const params = {accessToken};
- return axios({
- method:'post',
- // url,
- url: `${url}?${qs.stringify(params)}`,
- timeout: TIME_OUT,
- data,
- // data: qs.stringify(data),
- headers:{
- 'Content-Type': 'application/json',
- // 'Content-Type':'application/x-www-form-urlencoded'
- }
- }).then(checkStatus).then(checkCode)
- },
- get (url, params){
- return axios({
- method: 'get',
- url: `${url}?${qs.stringify(params)}`,
- timeout: TIME_OUT,
- headers:{
- 'Content-Type':'text/plain',
- },
- }).then(checkStatus).then(checkCode)
- },
- }
|