Ao usar window.location.href, gostaria de passar os dados POST para a nova página que estou abrindo. isso é possível usando JavaScript e jQuery?
javascript
jquery
Brian
fonte
fonte
window.location.href
faz uma solicitação GET para a nova URL, não POST.Respostas:
Usando
window.location.href
não é possível enviar uma solicitação POST.O que você precisa fazer é configurar uma
form
tag com campos de dados nela, definir oaction
atributo do formulário para a URL e omethod
atributo para POST, em seguida, chamar osubmit
método naform
tag.fonte
form
, para que tudo seja enviado junto automaticamente?$("#myForm").submit()
. O formulário - que será invisível e usado apenas para enviar valores de seu código do lado do cliente, não a entrada do usuário - nunca será mostrado nem usado de outra forma, e a página será atualizada.Adicione um formulário ao seu HTML, mais ou menos assim:
e usar JQuery para preencher esses valores (é claro que você também pode usar javascript para fazer algo semelhante)
Então, finalmente, envie o formulário
no lado do servidor, você deve ser capaz de obter os dados enviados verificando
var1
evar2
, como fazer isso depende de qual linguagem do lado do servidor você está usando.fonte
Use este arquivo: "jquery.redirect.js"
consulte https://github.com/mgalante/jquery.redirect
fonte
Como já foi dito em outras respostas, não há como fazer um pedido POST usando window.location.href, para isso você pode criar um formulário e enviá-lo imediatamente.
Você pode usar esta função:
https://stackoverflow.com/a/133997/2965158
fonte
Resposta curta: não.
window.location.href
não é capaz de transmitir dados POST.Resposta um pouco mais satisfatória: você pode usar esta função para clonar todos os dados do formulário e enviá-los.
submitMe.importFields(form_element);
para cada um dos três formulários que deseja enviar.<input name="email">
in<form name="login">
, o nome enviado serálogin_name
.nameJoiner
variável para algo diferente de_
modo que não entre em conflito com seu esquema de nomenclatura de entrada.submitMe.submit();
fonte
é tão simples quanto isso
Tive que resolver isso para fazer um bloqueio de tela do meu aplicativo onde tinha que passar dados sigilosos como usuário e a url onde ele estava trabalhando. Em seguida, crie uma função que execute este código
fonte
done()
conjunto de funçõeswindow.location.href
Você considerou simplesmente usar armazenamento local / por sessão? -ou- Dependendo da complexidade do que você está construindo; você pode até usar indexDB.
nota :
Local storage
eindexDB
não são seguros - portanto, você deseja evitar o armazenamento de quaisquer dados confidenciais / pessoais (ou seja, nomes, endereços, endereços de e-mail, DOB, etc.) em qualquer um deles.Session Storage
é uma opção mais segura para qualquer coisa sensível, só é acessível para a origem que define os itens e também apaga assim que o navegador / guia é fechado.IndexDB
é um pouco mais [mas não muito mais] complicado e está30MB noSQL database
integrado em todos os navegadores (mas pode ser basicamente ilimitado se o usuário aceitar) -> da próxima vez que usar o Google Docs, abra DevTools -> aplicativo -> IndexDB e dê uma olhada. [alerta de spoiler: está criptografado].Focando em
Local
eSession Storage
; ambos são muito simples de usar:Se simples não é o seu lugar - ou - talvez você queira sair da estrada e tentar uma abordagem diferente todos juntos -> você provavelmente pode usar um
shared web worker
... sabe, apenas por diversão.fonte
Você pode usar GET em vez de passar, mas não use este método para valores importantes,
No CustomerBasket.php
fonte