Grails 1.3.1 spring-security-core 0.4 jQuery 1.4.x
我需要弄清楚如何检查ajax请求的安全权限。例如,我使用FullCalendar jQuery插件在选项卡中显示日历。当我双击一天时,我会在新标签页中显示“新建事件”屏幕。这样做是这样的:
$(tabId).load(contextPath + '/event/create', {tabId:tabId}, function() {
setupEvent(tabId, date, now);
});
现在,如果尝试创建新事件的用户没有正确的权限,则新选项卡会显示权限被拒绝的消息。我根本不想显示新标签,可能更喜欢显示带有错误消息的对话框。任何人都对如何解决这个问题有什么好主意?
答案 0 :(得分:1)
您需要从jQuery.load函数升级到jQuery.ajax。您的控制器操作可能会返回状态码401以供未经授权我认为当时会调用jQuery.ajax错误,你可以做出适当的响应。
即
$.ajax({
url: contextPath + '/event/create',
data: {tabId:tabId},
success: function(data) {
$j(tabId).html(data);
setupEvent(tabId, date, now);
},
error: function(xhr, textStatus) {
if (xhr.status == 401) {
alert("Unauthorized.");
}
}
});