vue根据http响应状态渲染显示404、500界面

需求:响应错误时,渲染显示出有错误信息的界面
准备:在compontent中创建错误信息界面400.vue、500.vue
注意:注意查看错误界面需要放在路由的哪一级别(我是children下)

一、创建路由(routes/index.js)

	export default {
    mode: 'history',
    routes: [
        // 动态路径参数 以冒号开头
        {
            name:'index',
            path: '/',
            component: () => import('@/components/QBLayout/index.vue'),
            children: [
            	{
	                name:'index',
	                path: '/',
	                component: () => import('@/components/Index/index.vue'),
           	 	},
            	{
                    name: 'error_403',
                    path: '403',
                    component:()=>import('@/components/errorStatus/403.vue')
                },
                {
                    name: 'error_500',
                    path: '500',
                    component:()=>import('@/components/errorStatus/500.vue')
                },
                {
                    name: 'error_404',//注意这个404路由要放在最后面
                    path: '*',
                    component:()=>import('@/components/errorStatus/404.vue')
                }
            ]
        }
    ]
}

	

二、响应拦截(util/http.js)

import Axios from 'axios'

//1、封装方法:针对异常响应码分别处理
const codeErrorHandle = (resData)=>{
    switch (resData.code) {
        case 404:
            router.push({
                name:'error_404'
              })
            break;
        case 500:
            router.push({
                name:'error_500'
              })
            break;
        default:
}
//2、axios拦截
const instance = Axios.create({ timeout: 25000 });

//3、响应拦截:主要针对响应处理如下
instance.interceptors.response.use(
    res => {
        if (res.status && +res.status < 300 && res.data && +res.data.code === 1) 
            return Promise.resolve(res.data.data);
        } else {//调用codeErrorHandle处理异常响应码
            codeErrorHandle(res.data);
            return Promise.reject(res);
        }
    },
    error => {//这是其他响应状态判断,不是这个主题,所以在这里暂时省略一下}
);
效果界面

http://localhost:8080/test. (输入路由中没有的界面 例如:test,然后回车后会显示出404界面)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值