Я сталкиваюсь с проблемой, которую ни я, ни старший разработчик с компанией в течение 7 лет не могут решить, поэтому я надеюсь, что вы сможете помочь. PHP сообщает, что $ _POST пуст после отправки формы. Хотя большинство наших пользователей находятся в Windows XP с IE8, стоит отметить, что эта комбинация OS/Browser является единственной, которая испытывает проблемы. Кроме того, у нас есть 125-150 загрузок ежедневно (в основном с IE8), и только 3-5 пользователей испытывают проблему в неделю. Один пользователь, с которым я говорил, успешно загрузил несколько документов в прошлом без проблем и на том же компьютере, не смог загрузить документ на прошлой неделе.Как можно отправить форму без данных POST?
У кого-нибудь еще возникли проблемы с отправкой формы из IE8, не содержащей данных POST?
Наша компания имеет форму загрузки, загруженную в диалог пользовательского интерфейса jQuery для загрузки нескольких файлов, с базовым индикатором прогресса и кнопкой отмены. Код длинный и разбросан в нескольких файлах, поэтому я решил не копировать/вставлять его в этот момент, но я сделаю все возможное, чтобы проиллюстрировать его вкратце.
<div id="dialog_div">
<div id="form_container">
<form>
</form>
</div>
<div id="progress_div">
</div>
</div>
Форма имеет пять входов файлов и кнопку, что это изначально отключен и включен только тогда, когда был выбран один или несколько файлов, нажмите кнопку. Прогресс div скрыт, и форма отображается, затем на submit, форма скрыта и отображается div прогресса. Используя setTimeout(), div прогресса обновляется каждые две секунды, чтобы показать процент загруженных, а также кнопку отмены. Мы используем процесс загрузки сеансов PHP для отслеживания загрузки и проверки того, что он не превышает максимальный размер. Если он превышает максимальный размер, XHR прерывается на стороне клиента. Нажатие кнопки «Отмена» запускает ту же функцию JS, которая используется для отмены загрузки слишком больших файлов. Когда нажата кнопка отмены, скрипт PHP, который получает форму, никогда не выполняется, поэтому в наших журналах ошибок ничего не отображается. Загрузка также может быть прервана, если наш скрипт выполнения не найдет данные сеанса о загрузке в течение 20 секунд.
Сложная часть заключается в том, что скрипт PHP, который получает форму, генерирует ошибку в наших журналах, которая равна «Без формы», потому что $ _POST пуст. Файлы, с которыми у пользователей возникли проблемы, НЕ слишком велики, и наши сотрудники смогли делать закачки для них с теми же файлами и через один и тот же интерфейс. Когда нажата кнопка отмены, сценарий никогда не выполняется, поэтому мы не думаем, что это проблема с тем, что загрузка была прервана.
Идеи сообщества.
Обвинить его в Билле Гейтсе и двигаться дальше? –
Во-первых, код формы, который вы опубликовали, слишком мало, чтобы догадываться. Во-вторых, установите сниффера http, чтобы узнать, что отправлено на сервер. Наконец, нажмите f12, чтобы увидеть какие-либо ошибки в консоли. – mplungjan
Проверьте, используют ли пользователи IE8, измененные IEAK. Раньше у меня были проблемы с сообщениями ajax, если действительно это загрузка ajax. – Jack