Я реализую функции выхода для веб-приложения. У меня есть функция, которая вызывается, когда пользователь нажимает кнопку выхода.302 Перенаправление с AJAX после запроса:
$.post(window.location.pathname + '/logout');
Служба выхода из системы работает только с почтой.
Что происходит:
- статус 302 возвращается как ожидается, с Адрес: http://myapp.com/logout.html
- Видимо Аякса вызова JQuery просто выбирает оттуда и сразу же делает запрос GET для указанного места.
- запрос GET возвращает правильный HTML, но он возвращает его AJAX стиль страницы переадресации не загружается браузером
То, что я хотел бы случиться:
- 302 Статус возвращается как ожидается, с Местоположение: http://myapp.com/logout.html
- браузер перенаправляет на данном месте
Это не может быть сделано, [в соответствии с спецификацией] (http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send() -метод): «Если ответ имеет код состояния HTTP '302': 1) Установите URL-адрес запроса на URL-адрес, переданный заголовком' Location'. 2) ... * прозрачно * следуйте за перенаправлением ... "Спецификация не позволяет клиентским скриптам чтобы заметить, что произошло перенаправление. - В любом случае, почему вы ожидаете, что Ajax-запрос всегда будет перенаправлять страницу? Если вы получили ответ «200 OK», вы не ожидали, что страница перейдет к ответу Ajax, не так ли? – apsillers
Спасибо, что разъяснил мне эту проблему, я подозревал, что это было причиной. – jakee