Skip to content

Z、ajax响应

wangjie edited this page Dec 24, 2019 · 1 revision

401 未登陆

主要是针对session超时或者未登陆就直接通过浏览器地址访问受保护资源(URL)。

1、普通请求(from提交、url跳转)

处理方式:重定向到登陆页面

2、AJAX请求

处理方式:响应401 HTTP状态码, 返回JSON信息{code:'auth:unauthorized',message:'需要身份验证'}

示例代码:

$.ajax({
    url : 请求地址,
    type : "POST",
    data : 提交的数据,
    dataType : 'json',
    contentType : 'application/json;charset=UTF-8',
    success : 成功响应处理函数,
    error : function(xhr, textStatus, errorThrown) {
        if (xhr.status == 401) { // 处理未登陆情况
            alert(xhr.responseText)
        } else if (xhr.status == 403) { // 处理未授权情况
            alert(xhr.responseText)
        } else { // 处理其他未知情况
	    alert(xhr.responseText)
        }
    }
});

如果session超时展示效果:

ajax401

实际项目中您可以做的更人性化点,弹出一个登陆窗口让用户登陆。假如用户正在填写一个超级复杂的表单,提交的时候刚好session超时,这时候要是跳转到登陆界面,估计用户会崩溃的,这种处理方法让用户不丢弃正在进行的工作。

403 未授权

主要是针对用户点击或者提交了一个自己没有权限操作的资源(URL),比如不具备相应的角色。

1、普通请求(from提交、url跳转)

处理方式:重定向到无权限页面,这个页面是在您的application.properties中配置的

# 无权限页面,当用户操作了无权限的资源跳转至此
jsets.shiro.unauthorized-url=/unauthorized

2、AJAX请求

处理方式:响应403 HTTP状态码, 返回JSON信息{code:'auth:forbidden',message:'权限不足'}

展示效果:

ajax403

Clone this wiki locally