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/

10-12 07:06