123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- import Vue from 'vue';
- import axios from 'axios';
- import router from '@/router'
- axios.defaults.timeout = 65000;
- axios.defaults.baseURL = '';
- //http request 拦截器
- axios.interceptors.request.use(
- config => {
- console.log(config)
- // const token = getCookie('名称');注意使用的时候需要引入cookie方法,推荐js-cookie
- console.log(window.localStorage.getItem("token"))
- var userJson = window.localStorage.getItem("token")
- if(!userJson){
- var userData = false
- var token;
- }else{
- var userData = JSON.parse(userJson)
- var token;
- }
- if(userData && userData.access_token){
- token = userData.access_token
- }
-
- config.data = JSON.stringify(config.data)
- config.headers['Content-Type'] = 'application/json;charset=UTF-8'
- config.headers['Authorization'] = 'Basic c2FiZXI6c2FiZXJfc2VjcmV0'
- config.headers['Blade-Auth'] = token
- return config;
- },
- error => {
- return Promise.reject(err);
- }
- );
- //http response 拦截器
- axios.interceptors.response.use(
- response => {
- if (response.data.code == 1011008 || response.data.code == 1011006) {
- // Toast.fail('登录过期,跳原生')
- let userData
- var u = navigator.userAgent;
- var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
- var isiOS = u.indexOf('Mac OS X') > -1
- try{
- if(isAndroid){
- window.jsi.logout()
- }
- if(isiOS){
-
- }
- }catch(err){
- }
- }
- // if (response.data.code != 200) {
- // Toast.fail(response.data.message)
- // }
-
- switch (response.data.code) {
- case 32:
- response.msg = '请求错误(400)'
- break;
- }
- return response;
- },
- err => {
- console.log(err.response)
- if (err && err.response) {
- console.log(err.response)
- if(err.response.status == 500 || err.response.status == 503){
- Toast.fail('服务器错误')
- return
- }
- switch (err.response.data.code) {
-
- case 401:
- Toast.fail('登录已失效,请重新登录')
- router.push("/")
- break;
- case 403:
- err.message = '拒绝访问(403)';
- break;
- case 404:
- err.message = '请求出错(404)';
- break;
- case 408:
- err.message = '请求超时(408)';
- break;
- case 500:
- err.message = '服务器错误(500)';
- break;
- case 501:
- err.message = '服务未实现(501)';
- break;
- case 502:
- err.message = '网络错误(502)';
- break;
- case 503:
- err.message = '服务不可用(503)';
- break;
- case 504:
- err.message = '网络超时(504)';
- break;
- case 505:
- err.message = 'HTTP版本不受支持(505)';
- break;
- default:
- err.message = `${err.response.data.msg}`;
- }
- // if(err.response.status == 404){
- // router.push("/*")
- // }
- // if(err.response.status == 500 || err.response.status == 502){
- // router.push("/500")
- // }
- // if(err.response.status == 401){
- // router.push("/401")
- // }
- } else {
- err.message = '连接服务器失败!'
- }
- console.log(err.message)
- // Toast.fail(err.message)
- return Promise.reject(err);
- }
- )
- /**
- * 封装get方法
- * @param url
- * @param data
- * @returns {Promise}
- */
- export function get(url, params = {}) {
- return new Promise((resolve, reject) => {
- if(process.env.NODE_ENV == "development"){
- var getUrl = "http://" + window.location.host + "" + url
- }else{
- var getUrl = "https://" + window.location.host + "/api" + url
- }
- axios.get(getUrl, {params:params})
- .then(response => {
- setTimeout(() => {
- }, 500)
- resolve(response.data);
- }, err => {
- reject(err)
- })
- })
- }
- /**
- * 封装post请求
- * @param url
- * @param data
- * @returns {Promise}
- */
- export function post(url, data = {},params,headers) {
- return new Promise((resolve, reject) => {
- if(process.env.NODE_ENV == "development"){
- var postUrl = "http://" + window.location.host + url
- }else{
- var postUrl = "https://" + window.location.host +'/api' + url
- }
- axios.post(postUrl, data = {},{
- params:params,
- headers:headers || null
- })
- .then(response => {
- setTimeout(() => {
- }, 500)
- resolve(response.data);
- }, err => {
- reject(err)
- })
- })
- }
- export default {
- post,
- get
- }
|