状态码判断以及自动添加到日志
Former-commit-id: 1befd09802269c61539a27ef2fd4ac86fd6c9b6f [formerly 1befd09802269c61539a27ef2fd4ac86fd6c9b6f [formerly 1befd09802269c61539a27ef2fd4ac86fd6c9b6f [formerly 1befd09802269c61539a27ef2fd4ac86fd6c9b6f [formerly a213ae2d21d86093399baa832146d6c72e7bbe04 [formerly 092ca0610f12674937184af3e325dd1942ea8da5]]]]] Former-commit-id: be65bfb06d778ba61a1730ec9bf99f4d08c5a815 Former-commit-id: de8047c7fa1b0a4f73b0f8287af0154b895b643a Former-commit-id: 9b61b9e04a5c6f5f61e248d299799520dcdfba95 [formerly 5e7b6390d23f20f0648b14ed934762068aed9623] Former-commit-id: 05679a88d3b99e10d9abacb81c500c1ffe7210d5 Former-commit-id: 9c7d82216e4ed70c3621b17c64dbbc239ece84d7 Former-commit-id: 1c8984d4a3b819b4a23eaab0d80df2b8480f8c7a Former-commit-id: 32635935c307b8af906ad12bd5f18006fc67ce78 Former-commit-id: 37ee780a2e409cfcd8d247b9f44ed80d66dc68db
This commit is contained in:
@@ -25,6 +25,7 @@
|
||||
<script>
|
||||
import { PluginMocksAjax } from '@/api/demo/plugins/mocks/ajax'
|
||||
export default {
|
||||
name: 'demo-plugins-mock-ajax',
|
||||
data () {
|
||||
return {
|
||||
table: {
|
||||
@@ -46,6 +47,9 @@ export default {
|
||||
}))
|
||||
this.table.data = res.list
|
||||
})
|
||||
.catch(() => {
|
||||
// 错误情况
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,36 @@
|
||||
import store from '@/store'
|
||||
import axios from 'axios'
|
||||
import { Message } from 'element-ui'
|
||||
import util from '@/libs/util'
|
||||
|
||||
// 创建一个错误
|
||||
function errorCreat (msg) {
|
||||
const err = new Error(msg)
|
||||
errorLog(err)
|
||||
throw err
|
||||
}
|
||||
|
||||
// 记录和显示错误
|
||||
function errorLog (err) {
|
||||
// 添加到日志
|
||||
store.dispatch('d2admin/log/add', {
|
||||
type: 'error',
|
||||
err,
|
||||
info: '数据请求异常'
|
||||
})
|
||||
// 打印到控制台
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
util.log.danger('>>>>>> Error >>>>>>')
|
||||
console.log(err)
|
||||
}
|
||||
// 显示提示
|
||||
Message({
|
||||
message: err.message,
|
||||
type: 'error',
|
||||
duration: 5 * 1000
|
||||
})
|
||||
}
|
||||
|
||||
// 创建一个 axios 实例
|
||||
const service = axios.create({
|
||||
baseURL: process.env.VUE_APP_API,
|
||||
@@ -37,21 +66,44 @@ service.interceptors.response.use(
|
||||
const { code } = dataAxios
|
||||
// 根据 code 进行判断
|
||||
if (code === undefined) {
|
||||
// 如果没有 code 代表这不是后端返回的数据(例如请求 D2Admin 最新版本)
|
||||
// 如果没有 code 代表这不是项目后端开发的接口 比如可能是 D2Admin 请求最新版本
|
||||
return dataAxios
|
||||
} else {
|
||||
// 有 code 代表这是一个后端接口
|
||||
return dataAxios.data
|
||||
// 有 code 代表这是一个后端接口 可以进行进一步的判断
|
||||
switch (code) {
|
||||
case 0:
|
||||
// [ 示例 ] code === 0 代表没有错误
|
||||
return dataAxios.data
|
||||
case 'xxx':
|
||||
// [ 示例 ] 其它和后台约定的 code
|
||||
util.log.error('code xxx')
|
||||
errorCreat(`${dataAxios.msg}: ${response.config.url}`)
|
||||
break
|
||||
default:
|
||||
// 不是正确的 code
|
||||
errorCreat(`${dataAxios.msg}: ${response.config.url}`)
|
||||
break
|
||||
}
|
||||
}
|
||||
},
|
||||
error => {
|
||||
util.log.danger('>>>>>> Error >>>>>>')
|
||||
console.log(error)
|
||||
Message({
|
||||
message: error.message,
|
||||
type: 'error',
|
||||
duration: 5 * 1000
|
||||
})
|
||||
if (error && error.response) {
|
||||
switch (error.response.status) {
|
||||
case 400: error.message = '请求错误'; break
|
||||
case 401: error.message = '未授权,请登录'; break
|
||||
case 403: error.message = '拒绝访问'; break
|
||||
case 404: error.message = `请求地址出错: ${error.response.config.url}`; break
|
||||
case 408: error.message = '请求超时'; break
|
||||
case 500: error.message = '服务器内部错误'; break
|
||||
case 501: error.message = '服务未实现'; break
|
||||
case 502: error.message = '网关错误'; break
|
||||
case 503: error.message = '服务不可用'; break
|
||||
case 504: error.message = '网关超时'; break
|
||||
case 505: error.message = 'HTTP版本不受支持'; break
|
||||
default: break
|
||||
}
|
||||
}
|
||||
errorLog(error)
|
||||
return Promise.reject(error)
|
||||
}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user