Метод POST преобразуется в GET в IE-9 - PullRequest
13 голосов
/ 17 августа 2011

У меня есть эта строка кода в моем JSP. (Я использую распорки 1.3)

, , , </ Html: форма>

Когда вызывается действие, соответствующее mine.do (с использованием struts-config.xml), страница отправляется как GET, а не POST. Все параметры запроса, включая обязательные, теряются из-за этого. Эта проблема возникает только в IE-9.

Ответ остается как POST, когда я использую другие версии IE или любых других браузеров. Как мне сделать ответ, чтобы остаться как POST в IE-9?

РЕДАКТИРОВАТЬ: Я заметил еще одну проблему в этом. Всякий раз, когда страница отображается в новом окне, эта проблема возникает. В других местах POST отлично работает в IE-9.

Кроме того, эта проблема возникает в Win7 / IE-8, но работает абсолютно нормально в XP / IE-8. Есть ли что-то связанное с ОС?

Любые решения будут полезны.

Спасибо !!

Ответы [ 4 ]

13 голосов
/ 02 сентября 2011

Эта проблема возникала из-за настроек безопасности в IE в Windows 7. Это также происходит в IE-8 Win-7.(Но прекрасно работает в IE-8 Win-XP)

В IE Windows-7 есть возможность включить / отключить защищенный режим .Это новая функция, присутствующая в IE Vista / Windows-7, и эта опция включена по умолчанию для зоны «Интернет» и зоны «Локальная интрасеть» (или любой из них).Отключение в этих 2 местах решило проблему.

Сервис -> Свойства обозревателя -> Безопасность -> Интернет / локальная интрасеть -> Снимите флажок «Включить защищенный режим».

2 голосов
/ 29 августа 2012

TL; DR: убедитесь, что оба объекта находятся в одной зоне.У меня были сайты в двух разных зонах, и вызов стека зон сломал IE.

Для всех, кто сталкивается с этим (как я сделал), но обнаруживает, что параметр защищенного режима не разрешает его, я написал этона другой ветке: https://stackoverflow.com/a/12167814/649249

Разрешил это для меня.

0 голосов
/ 18 августа 2011

Мы заметили, что есть некоторые предупреждения безопасности, которые останавливают обработку, чтобы пользователь мог ее подтвердить.Как только использование подтверждает предупреждение, браузер отправляет получение, а не сообщение.Это происходит в IE8, не уверен, что это все еще происходит в IE9.

0 голосов
/ 17 августа 2011

Попробуйте это: method="POST".

В стандарте конкретно указано, что метод может иметь значение GET |POST (обратите внимание на заглавные буквы).

...