Плагин jquery.form, ajaxSubmit и перехват при получении HTTP 302

До сих пор я успешно использую подключаемый модуль jquery.form и его метод ajaxSubmit, но теперь Я застрял в том, как он обрабатывает HTTP 302. Позвольте мне объяснить:

  1. Пользователь отправляет форму через xhr, используя ajaxSubmit
  2. Если форма недействительна, ответ содержит HTML-код формы с ошибками и т. д. (HTTP 200), и это нормально.
  3. Если for действителен, серверная часть возвращает HTTP 302, но здесь кроется проблема…

ajaxSubmit, кажется, перехватывает 302 и выполняет внутреннее перенаправление и извлекает перенаправленное содержимое, поэтому все, что я получаю в обратных вызовах событий success или complete, — это HTTP 200, который он извлекает после перехода по местоположению, предоставленному перенаправлением.

Что я хотел бы сделать, так это проверить 302, а затем что-то сделать с URL-адресом перенаправления (например, перенаправить окно браузера, а не просто обновить часть DOM текущей страницы).

Можно ли этого добиться? Я чувствую себя немного глупо, потому что я уверен, что это так :$

Любая помощь очень ценится :)


person NiKo    schedule 26.06.2011    source источник


Ответы (1)


Самостоятельный ответ здесь.

Я наткнулся на эту запись в блоге где парень использует Django и сталкивается с той же проблемой с поддержкой перенаправления HTTP в реализациях браузера xmlHttpRequest.

Он предложил очень хорошее решение, обрабатывая конкретно запрос ajax от бэкэнда, устанавливая собственный код состояния и тестируя его после обратных вызовов событий ajax.

Надеюсь, это поможет кому-то еще.

person NiKo    schedule 26.06.2011
comment
Статья удалена. @NiKo, не могли бы вы объяснить решение здесь? - person db0; 27.06.2018