При использовании window.location.href я хотел бы передать данные POST на новую страницу, которую я открываю. возможно ли это с помощью JavaScript и jQuery?
javascript
jquery
Брайан
источник
источник
window.location.href
выполняет запрос GET для нового URL-адреса, а не POST.Ответы:
Используя
window.location.href
это, невозможно отправить запрос POST.Что вам нужно сделать, так это настроить
form
тег с полями данных в нем, установитьaction
атрибут формы на URL-адрес иmethod
атрибут на POST, а затем вызватьsubmit
метод дляform
тега.источник
form
, чтобы все отправлялось вместе автоматически?$("#myForm").submit()
. Форма, которая будет невидимой и будет использоваться только для отправки значений из вашего кода на стороне клиента, а не для ввода пользователем, никогда не будет отображаться или использоваться иным образом, а страница будет обновлена.Добавьте форму в свой HTML-код, примерно так:
и используйте JQuery для заполнения этих значений (конечно, вы также можете использовать javascript, чтобы сделать что-то подобное)
Затем, наконец, отправьте форму
на стороне сервера вы должны иметь возможность получать данные, которые вы отправили, проверяя,
var1
иvar2
как это сделать, зависит от того, какой язык на стороне сервера вы используете.источник
Используйте этот файл: "jquery.redirect.js"
см. https://github.com/mgalante/jquery.redirect
источник
Как было сказано в других ответах, нет возможности сделать запрос POST с помощью window.location.href, для этого вы можете создать форму и немедленно отправить ее.
Вы можете использовать эту функцию:
https://stackoverflow.com/a/133997/2965158
источник
Короткий ответ: нет.
window.location.href
не может передавать данные POST.Несколько более удовлетворительный ответ: вы можете использовать эту функцию для клонирования всех данных вашей формы и их отправки.
submitMe.importFields(form_element);
для каждой из трех форм, которые вы хотите отправить.<input name="email">
in<form name="login">
, отправленное имя будетlogin_name
.nameJoiner
переменную на что-то другое, кроме того,_
чтобы это не противоречило вашей схеме именования входных данных.submitMe.submit();
источник
это так просто
Мне пришлось решить эту проблему, чтобы заблокировать экран моего приложения, где я должен был передать конфиденциальные данные как пользователь и URL-адрес, по которому он работал. Затем создайте функцию, которая выполняет этот код
источник
done()
наборе функцийwindow.location.href
Рассматривали ли вы просто использование локального / сеансового хранилища? -или- В зависимости от сложности того, что вы создаете; вы даже можете использовать indexDB.
примечание :
Local storage
иindexDB
не являются безопасными - поэтому вы не хотите хранить какие-либо конфиденциальные / личные данные (например, имена, адреса, адреса электронной почты, DOB и т. д.) в любом из них.Session Storage
- более безопасный вариант для всего конфиденциального, он доступен только для источника, который установил элементы, а также очищается, как только браузер / вкладка закрывается.IndexDB
немного сложнее [но не намного] сложнее и30MB noSQL database
встроено в каждый браузер (но может быть практически неограниченным, если пользователь выбирает) -> в следующий раз, когда вы будете использовать документы Google, откройте DevTools -> приложение -> IndexDB и возьми пик. [предупреждение о спойлере: он зашифрован].Сосредоточение внимания на
Local
иSession Storage
; они оба очень просты в использовании:Если простота не для вас - или - может быть, вы хотите съехать с дороги и попробовать другой подход все вместе -> вы, вероятно, можете использовать
shared web worker
... ну, просто для удовольствия.источник
Вы можете использовать GET вместо pass, но не используйте этот метод для важных значений,
В CustomerBasket.php
источник