vue-element3-search-table
Version:
```bash npm i vue-element3-search-table@latest --save ```
73 lines (67 loc) • 1.68 kB
JavaScript
import axios from 'axios'
const baseURL = import.meta.env.VITE_BASE_API
const http = axios.create({
baseURL,
timeout: 5000 // request timeout
})
// 发起请求之前的拦截器
http.interceptors.request.use(
config => {
// 如果有token 就携带tokon
const token = window.localStorage.getItem('access-token')
if (token) {
config.headers.common['access-token'] = token
}
return config
},
error => Promise.reject(error)
)
// 响应拦截器
http.interceptors.response.use(
response => {
const res = response.data
if (response.status !== 200) {
return Promise.reject(new Error(res.message || 'Error'))
} else {
return res
}
},
error => {
return Promise.reject(error)
}
)
/**
* get方法,对应get请求
* @param {String} url [请求的url地址]
* @param {Object} params [请求时携带的参数]
*/
export function get(url, params){
return new Promise((resolve, reject) =>{
http.get(url, {
params: params
}).then(res => {
resolve(res.data);
}).catch(err =>{
reject(err.data)
})
});
}
/**
* post方法,对应post请求
* @param {String} url [请求的url地址]
* @param {Object} params [请求时携带的参数]
*/
export function post(url, params) {
return new Promise((resolve, reject) => {
axios.post(url, QS.stringify(params))
.then(res => {
resolve(res.data);
})
.catch(err =>{
reject(err.data)
})
});
}
axios.get = get
axios.post = post
export default axios