| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- /**
- * @file Axios的Vue插件(添加全局请求/响应拦截器)
- */
- import {DEVICE_TYPE, REQUEST_URL} from './config'
- import axios from 'axios'
- const axiosObj = axios.create({
- baseURL: REQUEST_URL,
- headers: {
- 'Content-Type': 'application/json;charset=UTF-8',
- 'Device-Type': DEVICE_TYPE,
- 'Suppress-Response-Code': '1',
- },
- })
- // 拦截request,设置全局请求为ajax请求
- axiosObj.interceptors.request.use((config) => {
- // config.headers['X-Requested-With'] = 'XMLHttpRequest';
- // config.headers['request-device'] = 'app';
- return config
- })
- // 拦截响应response,并做一些错误处理
- axiosObj.interceptors.response.use((response) => {
- const responseData = response.data
- const data = responseData.data
- if (responseData.success === false) {
- const err = new Error(data.message)
- err.data = data
- err.message = data.message
- err.response = response
- throw err
- } else {
- return data
- }
- }, (err) => { // 这里是返回状态码不为200时候的错误处理
- if (err && err.response) {
- switch (err.response.status) {
- case 400:
- err.message = '请求错误'
- break
- case 401:
- err.message = '未授权,请登录'
- break
- case 403:
- err.message = '拒绝访问'
- break
- case 404:
- err.message = `请求地址出错: ${err.response.config.url}`
- break
- case 408:
- err.message = '请求超时'
- break
- case 500:
- err.message = '服务器内部错误'
- break
- case 501:
- err.message = '服务未实现'
- break
- case 502:
- err.message = '网关错误'
- break
- case 503:
- err.message = '服务不可用'
- break
- case 504:
- err.message = '网关超时'
- break
- case 505:
- err.message = 'HTTP版本不受支持'
- break
- default:
- }
- }
- return Promise.reject(err)
- })
- export default axiosObj
|