// request.js
import axios from 'axios' import qs from 'qs' // 創建axios實例 const service = axios.create({ timeout: 10000, // 請求超時時間 transformrequest: data => qs.stringify(data) }) // request攔截器 service.interceptors.request.use( config => { config.headers['X-Requested-With'] = 'XMLHttpRequest' config.headers['X-Platform'] = window.__wxjs_environment === 'miniprogram' ? 'MiniProgram' : 'H5' return config }, error => ({ status: 0, msg: error.message }) ) // respone攔截器 service.interceptors.response.use( response => { const res = response if (response.status === 200) { switch (res.status) { case 0: // 錯誤並提示 if (!response.config.errorSelf) { // } return { data: res.data, msg: res.msg, status: false } case 1: // 成功返回數據 return { data: res.data, msg: res.msg, status: true } case -1: // 暫不進行任何操作 return { data: res.data, status: false } default: return { data: res.data, status: true } } } return { data: response.data, status: false } }, error => { console.log('err' + error) // for debug switch (error.request.status) { case 401: // 無權限訪問,需要登錄 return Promise.reject ? Promise.reject(error) : error case 500: // 請求接口錯誤 if (error.config.linkError) { // } return Promise.reject ? Promise.reject(error) : error } return Promise.reject ? Promise.reject(error) : error } ) export default service
調用:
import request from '@/utils/request' /** * 登錄 */ export function login (data) { return request({ url: '/sqlapi/login', method: 'post', data: { username: data.username, password: data.password } }) }