首页 > 后端开发 > php教程 > rbac没权限返回如何判断跳转到页面还是ajax返回

rbac没权限返回如何判断跳转到页面还是ajax返回

WBOY
发布: 2016-06-06 20:33:47
原创
1254 人浏览过

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

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

回复内容:

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

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

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

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

<code>{error:1, msg: "无权限访问xxx"}
</code>
登录后复制

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

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板