| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import axios from 'axios'
- import { Message } from 'element-ui'
- console.log(window)
- const service = axios.create({
- baseURL: window?._BASE_CONFIG?.API || '/api',
- withCredentials: true
- })
- /**
- * 请求拦截器
- * 统一处理请求拦截,如:添加token等
- */
- service.interceptors.request.use(
- (config) => {
- return config
- },
- (error) => {
- return Promise.reject(error)
- }
- )
- /**
- * 响应拦截器
- * 统一处理响应拦截
- * 如:重定向、消息提示等操作
- */
- service.interceptors.response.use(
- async (response) => {
- const { data } = response
- if (data?.code) {
- if (data.code !== '0000') {
- Message({
- message: data.msg || 'Error',
- type: 'error',
- duration: 5 * 1000
- })
- return Promise.reject(new Error(data.msg || 'Error'))
- } else {
- return data
- }
- } else if (data.type === 'application/octet-stream') {
- return response
- } else if (data.type === 'application/json') {
- const resData = JSON.parse(await data.text())
- console.log(resData)
- // 根据后端返回code码进行处理
- if (resData.code !== '0000') {
- Message({
- message: resData.msg || 'Error',
- type: 'error',
- duration: 5 * 1000
- })
- return Promise.reject(new Error(resData.msg || 'Error'))
- } else {
- return resData
- }
- }
- },
- (error) => {
- const { response } = error
- if (response?.status === 401) {
- window.location = response.data
- return
- }
- Message({
- message: error.message,
- type: 'error',
- duration: 5 * 1000
- })
- return Promise.reject(error)
- }
- )
- const request = (requestObj) => {
- const { url, method, data = {}, timeout, params, responseType } = requestObj
- return service({
- url,
- method: method || 'post',
- data,
- timeout: timeout || 300000,
- params: params || (method && method.toLowerCase() === 'get' ? data : {}),
- responseType: responseType || 'json'
- })
- }
- export default request
|