В Internet Explorer отсутствуют данные POST в запросе form.submit()

#javascript #jquery #forms #internet-explorer #post

#javascript #jquery #формы #internet-explorer #Публикация

Вопрос:

В IE11 при использовании обычной функции form.submit() JS переменные POST не передаются на сервер. Консоль разработчика показывает, что параметры POST пусты.

Я использую jQuery для запуска события при .form-file-download нажатии:

 $(".form-file-download").on("click", 
                        ".download-file",
                        function (){
                            $(this).parent().submit();
                        });
  

Это отправляемая форма:

 <form class="form-file-download" action="/reqHandling/file.handler.php" method="post">
    <input name="file" type="hidden" value="3">
    <input name="action" type="hidden" value="download">
    <i class="fa fa-cloud-download download-file"></i>
</form>
  

Данные формы не обрабатываются JS. Я уже пытался скрыть входные данные.

Функция отправки выполняется и отправляет POST-запрос в file .handler.php (как и ожидалось), но никакие параметры не отправляются.

Firefox, Chrome и Edge отправляют данные формы. Есть идеи, что не так? Дайте мне знать, если потребуется дополнительная информация!

Комментарии:

1. Вы смотрели на сетевой инспектор в инструментах разработчика IE, чтобы узнать, действительно ли что-то отправлено?

2. Да, это то, что я имел в виду, говоря, что консоль разработчика показывает, что параметры POST пусты. Запрос представляет собой запрос POST на правильный URL-адрес, заголовки в порядке, но нет данных POST…

3. Извините, я это пропустил! Возможно, попробуйте переименовать action , поскольку theform.action может возникнуть неоднозначность между элементом и атрибутом с тем же именем.

Ответ №1:

Насколько я вижу, параметры отправляются в IE11:

https://jsfiddle.net/McNetic/ug429jfd/1/

Средства разработки IE отображаются не как «параметры» для запросов POST, а как текст запроса.

 (ignore code for jsfiddle link)
  

Комментарии:

1. Я решил проблему некоторое время назад… Я думаю, это было связано с тем, что JS манипулировал всеми элементами формы при загрузке. Затем IE не смог отправить текущие значения (все еще действительной) формы.