Grails 1.3.1
Spring 安全核心0.4
jQuery 1.4.x
我需要弄清楚如何检查ajax请求的安全权限。例如,我使用FullCalendar jQuery插件在选项卡中显示了一个日历。当我双击一天时,在新选项卡中显示“新事件”屏幕。这样做是这样的:
$(tabId).load(contextPath + '/event/create', {tabId:tabId}, function() {
setupEvent(tabId, date, now);
});
因此,现在,如果尝试创建新事件的用户没有正确的权限,则新选项卡将显示“权限被拒绝”消息。我宁愿根本不显示一个新选项卡,并且可能更愿意显示一个包含错误消息的对话框。关于如何解决这个问题,有人有什么好主意吗?
最佳答案
您需要从jQuery.load函数升级到jQuery.ajax。您的 Controller 操作可能会返回未经授权的状态代码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.");
}
}
});
关于jquery - 检查对Ajax请求的权限,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3153834/