Проверка разрешений на запросы Ajax - PullRequest
0 голосов
/ 01 июля 2010

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 Ответ

1 голос
/ 01 июля 2010

Вам необходимо обновить функцию 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.");
    }
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...