js 服务器链接失败跳转错误页面处理

27 篇文章 0 订阅
24 篇文章 0 订阅

一般我们在处理请求服务的时候不免会遇到服务器连接不上的情况,而现在开发网站应用一般读书采用路由的方式,也非html静态文件开发,列入使用vue脚手架开发网站应用的时候,我们会将对请求服务器的操作进行封装到一个单独的文件,会用一个总的post或者get等方法。当我们请求服务端的时候如果返回的是服务器连接失败的情况想用路由跳转的指定的提示页面却发现就会出现两个Vue事例,这样跳转就没有意义的,完全无效的。我们可以使用window对象本身的href属性来伪装路由。

1.首先你得路由表中有指定的数据,我的是这样的,我将路由表单独提出来了

export const routes = [
 ...
 //网络错误
  {
    path: '/net-break',
    name: 'net-break',
    component: resolve => require(['components/error/NetBreak'], resolve)
  }, 
 ...
]

2.在总的post或者get方法的js文件中封装一个处理网络错误的函数,先读去href,再重新包装成路由的href,这样页面不会因为改变了href的值而重新刷新页面

//前往网络错误页面
function go2netBreak() {
  let url = window.location.href;
  url = (url.split('#'))[0]+'#/net-break';
  window.location.href = url
}

3.在post或者get函数中使用

export class PostUtil {
   ...
   async Post(url, params) {
    url = this.host + url;
    return await new Promise((resolve, reject) => {
      Axios.post(url, JSON.stringify(params))
        .then(rs => {
          //console.log(rs);
          if (parseInt(rs.data.Code) === 200) {
            resolve({
              data: rs.data.Data || rs.data,
              code: rs.data.Code && parseInt(rs.data.Code) || 401,
              msg: rs.data.Msg || null,
              count: rs.data.Count || null
            })
          } else {
            reject(rs)
          }
        })
        .catch(rs => {
          let message = null;
          let code = rs && rs.status;
          if (code && code === 404) {
            message = '资源不存在'
          } else if (code === 500) {
            message = '服务器未知错误'
          } else if (code === 401) {
            message = '当前请求需要用户验证'
          } else {
            message = '服务器链接崩溃了~';
            this.netErrCount += 1;
            ReqErrCount++;
            go2netBreak();    //这里使用
          }
        })
    })
  }
  ...
}

效果如下

地址

页面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值