#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 не смог отправить текущие значения (все еще действительной) формы.