const axios = require('axios')
import Vue from 'vue'
import store from '../store/index'
import router from '../router/index'
import {
Message,
Loading
} from 'element-ui'
import {urlHttp} from '@/util/constant'
axios.defaults.timeout = 300000;
axios.defaults.responseType = 'json';
axios.defaults.withCredentials = false;
axios.defaults.validateStatus = function (status) {
return status >= 200 && status < 300;
};
axios.interceptors.request.use(
config => {
return config
},
err => {
}
)
axios.interceptors.response.use(
response => {
if (isIE9()) {
if (response.status == 200 && response.request) {
if (response.request.responseType === "json" && response.request.responseText) {
response.data = JSON.parse(response.request.responseText);
}
}
}
return response
},
error => {
if (error.response.status == 401) {
if (sessionStorage.length == 0 || sessionStorage.getItem('redirectUrl') == null || sessionStorage.getItem('redirectUrl') == '') {
sessionStorage.setItem('redirectUrl', router.currentRoute.fullPath)
}
store.dispatch('ssoLogout', {'url': urlHttp}).then(function (res) {
console.log(res, '注销返回的地址')
store.commit('setToken', '')
store.commit('setTokenFlag', false)
store.commit('setLoginFlag', false)
store.commit('setLoginUserInfo', '')
Vue.$cookies.remove(window.iSoftCookiesKey[0], null, "h3c.com")
Vue.$cookies.remove(window.iSoftCookiesKey[1], null, "h3c.com")
router.push({
path: "/testLogin"
}).catch(err => {
})
}, function () {
})
}
else {
return Promise.reject(error);
}
}
)
axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
function http(options, success, fail) {
axios(options).then(function (response) {
if (response == undefined) {
} else if (response.data || response.data == '') {
response.data.flag ? success(response.data) : (fail(response.data, response.data.message || "系统错误"), console.log(response.data || "系统错误"));
} else {
fail(null, '未收到返回数据')
}
})
.catch(function (error) {
fail({
msg: ''
}, '未收到返回数据')
});
}
function httpExport(options, success, fail) {
axios(options).then(function (response) {
if (response == undefined) {
} else if (response.data || response.data == '') {
response.data ? success(response) : (fail(response, response.data.message || "系统错误"), console.log(response.data || "系统错误"));
} else {
fail(null, '未收到返回数据')
}
})
.catch(function (error) {
fail(error)
});
}
function get(options, success, fail) {
var requestOption = Object.assign({
method: 'get',
params: options.data
}, options);
http(requestOption, success, fail)
}
function post(options, success, fail) {
var requestOption = Object.assign({
method: 'post'
}, options);
http(requestOption, success, fail)
}
function put(options, success, fail) {
var requestOption = Object.assign({
method: 'put'
}, options);
http(requestOption, success, fail)
}
function delete1(options, success, fail) {
var requestOption = Object.assign({
method: 'delete'
}, options);
http(requestOption, success, fail)
}
function getExport(options, success, fail) {
var requestOption = Object.assign({
method: 'get',
params: options.data
}, options);
httpExport(requestOption, success, fail)
}
function postExport(options, success, fail) {
var requestOption = Object.assign({
method: 'post'
}, options);
httpExport(requestOption, success, fail)
}
function isIE9() {
if (
navigator.appName == "Microsoft Internet Explorer" &&
parseInt(
navigator.appVersion
.split(";")[1]
.replace(/[ ]/g, "")
.replace("MSIE", "")
) <= 9
) {
return true;
}
return false;
}
export {
get,
post,
put,
delete1,
getExport,
postExport
}