init
This commit is contained in:
111
src/utils/http.js
Normal file
111
src/utils/http.js
Normal file
@@ -0,0 +1,111 @@
|
||||
import axios from 'axios'
|
||||
|
||||
axios.interceptors.request.use(config => {
|
||||
const token = sessionStorage.getItem('cn-token')
|
||||
if (token) {
|
||||
config.headers.Authorization = token // 请求头token
|
||||
}
|
||||
return config
|
||||
},
|
||||
err => Promise.reject(err)
|
||||
)
|
||||
const accountErrorCode = [518003, 518004, 518005, 518006, 518007, 518008] // 账号锁定等
|
||||
const licenceErrorCode = [711001]
|
||||
|
||||
// 若get请求的url中带问号,则将url上的参数截取,改为对象形式传参
|
||||
axios.interceptors.request.use(
|
||||
config => {
|
||||
if (config.method === 'get') {
|
||||
const url = config.url
|
||||
const index = url.indexOf('?')
|
||||
if (index > -1) {
|
||||
const pre = url.substring(0, index)
|
||||
const suf = url.substring(index + 1, url.length)
|
||||
const paramsArr = suf.split('&')
|
||||
const params = {}
|
||||
paramsArr.forEach(p => {
|
||||
const i = p.indexOf('=')
|
||||
if (i > -1) {
|
||||
params[p.substring(0, i)] = p.substring(i + 1, p.length)
|
||||
} else {
|
||||
params[p] = ''
|
||||
}
|
||||
})
|
||||
config = { ...config, url: pre, params: params }
|
||||
}
|
||||
}
|
||||
return config
|
||||
}
|
||||
)
|
||||
axios.interceptors.response.use(
|
||||
response => {
|
||||
if (licenceErrorCode.indexOf(response.data.code) !== -1) {
|
||||
window.location.href = '/'
|
||||
} else if (response.status === 200) {
|
||||
if (accountErrorCode.indexOf(response.data.code) !== -1) {
|
||||
window.location.href = '/'
|
||||
}
|
||||
}
|
||||
return response
|
||||
},
|
||||
error => {
|
||||
return Promise.reject(error)
|
||||
}
|
||||
)
|
||||
export function get (url, params) {
|
||||
return new Promise((resolve) => {
|
||||
axios.get(url, {
|
||||
params: params
|
||||
}).then(response => {
|
||||
resolve(response.data)
|
||||
}).catch(err => {
|
||||
if (err.response) {
|
||||
resolve(err.response.data)
|
||||
} else if (err.message) {
|
||||
resolve(err.message)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export function post (url, params, headers) {
|
||||
return new Promise(resolve => {
|
||||
axios.post(url, params, { headers: headers }).then(response => {
|
||||
resolve(response.data, response)
|
||||
}).catch(err => {
|
||||
if (err.response) {
|
||||
resolve(err.response.data)
|
||||
} else if (err.message) {
|
||||
resolve(err.message)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export function put (url, params, headers) {
|
||||
return new Promise((resolve) => {
|
||||
axios.put(url, params, { headers: headers }).then(response => {
|
||||
resolve(response.data, response)
|
||||
}).catch(err => {
|
||||
if (err.response) {
|
||||
resolve(err.response.data)
|
||||
} else if (err.message) {
|
||||
resolve(err.message)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export function del (url, params) {
|
||||
return new Promise((resolve) => {
|
||||
axios.delete(url, params).then(response => {
|
||||
resolve(response.data, response)
|
||||
}).catch(err => {
|
||||
if (err.response) {
|
||||
resolve(err.response.data)
|
||||
} else if (err.message) {
|
||||
resolve(err.message)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user