检查Ajax请求的权限

时间:2010-06-30 22:18:17

标签: jquery grails spring-security

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);
});

现在,如果尝试创建新事件的用户没有正确的权限,则新选项卡会显示权限被拒绝的消息。我根本不想显示新标签,可能更喜欢显示带有错误消息的对话框。任何人都对如何解决这个问题有什么好主意?

1 个答案:

答案 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.");
    }
  }
});