Загрузка плагина формы Malsup jQuery в IE перенаправление 302

В любом другом браузере работает форма мультизагрузки. Только IE это не нравится. Когда я пытаюсь отправить форму, IE запускает перенаправление 302 на странице в атрибуте action="". Редирект идет в корень моего сайта.

Я уже пробовал это с iframe/textarea, но это тоже не работает. Я тестирую его на IE7, IE8, IE9.


person Flappy    schedule 14.10.2013    source источник


Ответы (1)


Прочитайте здесь .

Эта проблема обсуждалась на github.

Тогда это поможет понять, что именно делает плагин. Поскольку IE ‹ 10 не поддерживает загрузку файлов ajax, плагин имитирует взаимодействие с пользователем, отправляя исходную форму с ответом, предназначенным для динамически созданного iframe. Когда iframe загружает ответ сервера, подключаемый модуль извлекает ответ и вызывает обработчики обратного вызова.

В случае, когда сервер отвечает типом содержимого заголовка, установленным на «application/json», это запускает поведение загрузки IE по умолчанию. Чтобы избежать этого, не устанавливайте для заголовка content-type значение «application/json». Оставьте его как text/html или text/plain.

В случае, когда сервер имеет реальную ошибку, он вернет страницу ответа об ошибке с соответствующими кодами состояния, установленными в заголовке ответа. Это создает две проблемы для плагина:

  1. Он не может получить доступ к заголовкам ответа
  2. Он не может определить из тела ответа, был ли запрос успешным.

Потенциальное решение, если у вас есть контроль над страницей ответа об ошибке, состоит в том, чтобы добавить атрибуты к элементу body, который будет искать плагин. Плагин попытается получить доступ к атрибутам «status» и «statusText» в элементе body ответа. Поэтому, если ваша страница с ошибкой содержит что-то подобное, тогда будет активирован ваш обработчик ошибок.

Для IE нужно немного подправить

  1. используйте text/html или text/plain вместо «application/json».
  2. полностью контролировать ответ об ошибке, добавить сообщение об ошибке в текст успешного ответа, а затем извлечь и обработать его.

Нет ответа JSON в плагине формы jQuery в IE9

person Tushar Gupta - curioustushar    schedule 14.10.2013