2010-10-20 3 views
1

На одной из моих страниц у меня есть div, который использует ajax для загрузки контента асинхронно. По окончании сеанса пользователь должен быть перенаправлен обратно на экран регистрации. Однако, когда сеанс истекает и активируется вызов ajax, страница входа в систему вводится внутри div. Я хочу, чтобы пользователь был перенаправлен обратно на экран входа в систему.post back when session expires in ajax call

ответ

0

Отправить уведомление на JavaScript, что сеанс больше не действителен. Когда JavaScript получит соответствующую ошибку, введите window.location = http://example.com/.

2

Один из способов решения этой проблемы - добавить текст, чтобы однозначно идентифицировать страницу входа и использовать его в обратном вызове AJAX, чтобы перенаправить на страницу входа еще раз. Ниже приведен пример кода с использованием jQuery global callbacks ....

$(document).bind("ajaxComplete", function(event, response, ajaxOptions) { 
    if (response.status == 200 && response.responseText.match(/LOGIN_PAGE_UNIQUE_KEY/)) { 
     self.location = "/web/login?timeout=1"; 
     return false; 
    } 

}); 
+0

Поблагодарите u за u ответ. Это нормально работает – vishnu

+0

Рад, что я могу помочь. Если вам нравится ответ, и он решил вашу проблему, примите его, нажав на галочку. Это поможет другим людям узнать, что может быть лучшим решением для их проблемы. –

+0

Интересно, что это сработало для нас без добавления какого-либо уникального ключа. Причина состоит в том, что вызовы ajax, которые мы делали, были частичными представлениями в MVC, поэтому, если они преуспели в responseText, это был только html частичного. Но если он не удался, экран входа в систему будет загружаться в div, и responseText автоматически включит все, что вы вставили в LOGIN_PAGE_UNIQUE_KEY, потому что сам скрипт возвращался в responseText. Потрясающие. – JPeG

1

Я думаю, что заголовки расширения является ключом, страница Логин может отправить дополнительный заголовок для захвата обработчиком XMLHttpRequest.

Или в более ленивом и ненадежном подходе используйте javascript на странице входа, если местоположение текущей страницы не является логиной, а затем использовать javascript для перенаправления (это зависит от javascript, но поскольку вы делаете xhr запрос).

+0

Кажется, это хороший ленивый трюк. Кто-нибудь проверил это? Чувствовать себя ленивым, чтобы проверить это. – piyush