2010-06-30 6 views
0

Grails 1.3.1 весна-безопасности ядра 0,4 JQuery 1.4.xПроверка разрешений на Ajax просит

Мне нужно, чтобы выяснить, как проверить разрешения безопасности на AJAX-запросы. Например, у меня есть календарь, отображаемый на вкладке с использованием плагина FullCalendar jQuery. Когда я дважды щелкаю день, я показываю экран нового события на новой вкладке. Это делается так:

$(tabId).load(contextPath + '/event/create', {tabId:tabId}, function() { 
    setupEvent(tabId, date, now); 
}); 

Так прямо сейчас, если пользователь пытается создать новое событие не имеет необходимых разрешений, новая вкладка показывает разрешение отказано в сообщение. Я бы предпочел не отображать новую вкладку вообще и, вероятно, предпочел бы показывать диалог с сообщением об ошибке. У кого-нибудь есть какие-нибудь удивительные идеи о том, как решить эту проблему?

ответ

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."); 
    } 
    } 
}); 
+0

Да, кажется, хороший план для меня. Я сделаю некоторое тестирование и отправлю отчет ... – Gregg

+0

Работал как чемпион. Благодарю. – Gregg

Смежные вопросы