如果安全性拒绝访问ROLE_USER以使用路径Admin_Only,我有一个我想要触发的通知弹出窗口,我成功配置了这个,这完全适用于我:
security.yml
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/Admin_Only, role: ROLE_ADMIN }
access_denied_url: /home
我在我的Twig文件上有一个JQuery函数,我正在渲染我的/ home Action让它称之为accessDeniedJQ.
问题是我如何检查和在哪里(Controller或twig中的操作)重定向已经发生并且访问被拒绝,换句话说,我如何检查是否引发了此异常以便JQ函数启动.
最佳答案 当您的框架执行内部重定向(或者您只是不知道是否存在HTTP重定向)时,最好的办法是使用带有查询字符串的URL让您的代码了解它.
在这里我的建议是在url中附加类似于redirected = true的内容,这样它就会变成/ home?redirected = true
使用jquery get querystring from URL答案中的功能
function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
我可以很容易地检测到我的页面被重定向并采取相应的行动:
if(getUrlVars().redirected){
alert('You are not allowed there, got redirected!');
}