/*
|
* @Author: shuishen 1109946754@qq.com
|
* @Date: 2022-07-29 15:19:13
|
* @LastEditors: shuishen 1109946754@qq.com
|
* @LastEditTime: 2023-03-24 17:15:12
|
* @FilePath: \srs-police-affairs\src\router\axios.js
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
*/
|
/**
|
* 全站http配置
|
*
|
* axios参数说明
|
* isSerialize是否开启form表单提交
|
* isToken是否需要token
|
*/
|
import axios from "axios"
|
import router from "@/router/page/index.js"
|
import { Message } from "element-ui"
|
// 获取公共配置域名
|
|
import { Base64 } from 'js-base64'
|
import * as auth from '@/utils/auth'
|
|
let defaultApi = ''
|
let searchAllApi = ''
|
let videoApi = ''
|
|
if (process.env.NODE_ENV == 'development') {
|
// 开发
|
defaultApi = window.BASE_URL_CONFIG.VUE_APP_OUTER_NET
|
searchAllApi = window.BASE_URL_CONFIG.VUE_APP_OUTER_NET_SEARCH
|
videoApi = window.BASE_URL_CONFIG.VUE_APP_OUTER_NET_VIDEO
|
} else {
|
// 部署
|
defaultApi = window.BASE_URL_CONFIG.VUE_APP_INTRANET
|
searchAllApi = window.BASE_URL_CONFIG.VUE_APP_INTRANET_SEARCH
|
videoApi = window.BASE_URL_CONFIG.VUE_APP_INTRANET_VIDEO
|
}
|
|
// 调用后台管理的
|
const service = axios.create({
|
timeout: 600000, // request timeout
|
})
|
|
// 返回其他状态码
|
service.defaults.validateStatus = function (status) {
|
return status >= 200 && status <= 500
|
}
|
|
// 跨域请求,允许保存cookie
|
// service.defaults.withCredentials = true
|
|
// http request拦截
|
service.interceptors.request.use(
|
(config) => {
|
config.cancelToken = new axios.CancelToken(cancel => {
|
window._axiosPromiseArr.push({ cancel })
|
})
|
|
// 调用监控平台的
|
if (config.requestBaseUrl == "outside") {
|
config.baseURL = videoApi
|
} else if (config.requestBaseUrl == "fengt") {
|
config.baseURL = defaultApi
|
} else if (config.requestBaseUrl == "fengtDS") {
|
config.baseURL = searchAllApi
|
} else {
|
const meta = config.meta || {}
|
const isToken = meta.isToken === false
|
if (auth.getToken() && !isToken) {
|
config.headers['Blade-Auth'] = "bearer " + auth.getToken()
|
}
|
}
|
|
//headers判断是否需要
|
const authorization = config.authorization === false
|
if (!authorization) {
|
config.headers["Authorization"] = `Basic ${Base64.encode("saber:saber_secret")}`
|
}
|
//让每个请求携带token
|
|
//headers中配置text请求
|
// if (config.text === true) {
|
// config.headers["Content-Type"] = "text/plain"
|
// }
|
|
// const token = auth.getToken()
|
|
// 添加token
|
// token && (config.headers.token = token)
|
|
return config
|
},
|
(error) => {
|
return Promise.reject(error)
|
}
|
)
|
|
// http response 拦截
|
service.interceptors.response.use(
|
(res) => {
|
const code = res.data.code
|
if (code == 401 || code == 403 || res.data.data == "token 验证失败!") {
|
// sessionStorage.removeItem('token')
|
router.push("/login")
|
} else {
|
return res
|
}
|
},
|
(error) => {
|
// Message({
|
// message: error.message,
|
// type: "error",
|
// duration: 5 * 1000,
|
// })
|
// console.log(error)
|
|
return Promise.reject(new Error(error))
|
}
|
)
|
|
export default service
|