素材牛VIP会员
rbac没权限返回如何判断跳转到页面还是ajax返回
 km***04  分类:ThinkPHP  人气:741  回帖:2  发布于6年前 收藏

做后台过程中遇到个问题
用的是thinkphp自己的rbac
每个baseController里检查权限
当没有权限的时候,输出没有权限的页面
但是如果是按钮的话,点击后没有权限是前端页面是没有任何反馈的。只有F12开发者工具才能看到

所以,怎样在判断到没有权限后,有正确的返回方式,如果是页面让他进入没有权限的页面,如果是按钮让他返回ajax弹出您无权限的框

 标签:rbacthinkphpphp

讨论这个帖子(2)垃圾回帖将一律封号处理……

Lv2 入门
12***om JAVA开发工程师 6年前#1

根据 HTTP 请求的 header 判断是 Ajax 请求还是正常的页面请求,如果是普通的请求就直接跳转到登陆页,如果是Ajax请求(带X-Requested-With: XMLHttpRequest) 就返回HTTP status 401,或者类似能表达未登录状态的通用数据,我的处理是{ status : 1, message:'', data: [...]} 这样的数据结构,前端根据返回数据的status判断当前是否成功取到数据,然后对封装的数据进行进一步处理

Lv6 码匠
yy***15 页面重构设计 6年前#2

RestController有response()方法可以返回json, 或者自己写一个返回json的方法。
比如返回:

{error:1, msg: "无权限访问xxx"}

前端判断 data.error 就可以了。

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取