Al usar window.location.href, me gustaría pasar datos POST a la nueva página que estoy abriendo. ¿Es esto posible usando JavaScript y jQuery?
javascript
jquery
Brian
fuente
fuente
window.location.href
hace una solicitud GET para la nueva URL, no POST.Respuestas:
El uso
window.location.href
no es posible enviar una solicitud POST.Lo que tienes que hacer es configurar una
form
etiqueta con campos de datos, establecer elaction
atributo del formulario en la URL y elmethod
atributo en POST, luego llamar alsubmit
método en laform
etiqueta.fuente
form
para que todo se envíe automáticamente?$("#myForm").submit()
. El formulario, que será invisible y solo se usará para enviar valores desde el código del lado del cliente, no la entrada del usuario, nunca se mostrará ni se usará de otra manera, y la página se actualizará.Agregue un formulario a su HTML, algo como esto:
y use JQuery para completar estos valores (por supuesto, también puede usar javascript para hacer algo similar)
Entonces finalmente envíe el formulario
en el lado del servidor, debería poder obtener los datos que envió comprobando
var1
yvar2
, cómo hacerlo, depende del idioma del lado del servidor que esté utilizando.fuente
Utilice este archivo: "jquery.redirect.js"
ver https://github.com/mgalante/jquery.redirect
fuente
Como se dijo en otras respuestas, no hay forma de realizar una solicitud POST usando window.location.href, para hacerlo puede crear un formulario y enviarlo de inmediato.
Puede utilizar esta función:
https://stackoverflow.com/a/133997/2965158
fuente
Respuesta corta: no.
window.location.href
no es capaz de pasar datos POST.Respuesta algo más satisfactoria: puede usar esta función para clonar todos los datos de su formulario y enviarlos.
submitMe.importFields(form_element);
para cada uno de los tres formularios que quieras enviar.<input name="email">
en<form name="login">
, el nombre será presentadologin_name
.nameJoiner
variable a algo diferente_
para que no entre en conflicto con su esquema de nomenclatura de entrada.submitMe.submit();
fuente
es tan simple como esto
Tuve que resolver esto para hacer un bloqueo de pantalla de mi aplicación donde tenía que pasar datos sensibles como usuario y la url donde estaba trabajando. Luego crea una función que ejecute este código
fuente
done()
conjunto de funcioneswindow.location.href
¿Ha considerado simplemente usar almacenamiento local / de sesión? -o bien- Dependiendo de la complejidad de lo que está creando; incluso podrías usar indexDB.
nota :
Local storage
yindexDB
no son seguras, por lo que desea evitar almacenar datos confidenciales / personales (es decir, nombres, direcciones, direcciones de correo electrónico, fecha de nacimiento, etc.) en cualquiera de estos.Session Storage
es una opción más segura para cualquier cosa sensible, solo es accesible para el origen que configuró los elementos y también se borra tan pronto como se cierra el navegador / pestaña.IndexDB
es un poco más [pero no mucho más] complicado y está30MB noSQL database
integrado en todos los navegadores (pero puede ser básicamente ilimitado si el usuario acepta) -> la próxima vez que use Google docs, abra DevTools -> aplicación -> IndexDB y echa un vistazo. [alerta de spoiler: está encriptado].Centrándose en
Local
ySession Storage
; ambos son muy fáciles de usar:Si lo simple no es lo tuyo -o- tal vez quieras salirte de la carretera y probar un enfoque diferente todos juntos -> probablemente puedas usar un
shared web worker
... ya sabes, solo por diversión.fuente
Puede usar GET en lugar de pasar, pero no use este método para valores importantes,
En CustomerBasket.php
fuente