Bei Verwendung von window.location.href möchte ich POST-Daten an die neue Seite übergeben, die ich öffne. Ist dies mit JavaScript und jQuery möglich?
javascript
jquery
Brian
quelle
quelle
window.location.href
wird eine GET-Anforderung für die neue URL und nicht für POST ausgeführt.Antworten:
Mit ist
window.location.href
es nicht möglich, eine POST-Anfrage zu senden.Sie müssen lediglich ein
form
Tag mit Datenfeldern einrichten, dasaction
Attribut des Formulars auf die URL und dasmethod
Attribut auf POST setzen und dann diesubmit
Methode für dasform
Tag aufrufen .quelle
form
, damit alles automatisch zusammen gesendet wird?$("#myForm").submit()
. Das Formular, das unsichtbar ist und nur zum Senden von Werten aus Ihrem clientseitigen Code und nicht von Benutzereingaben verwendet wird, wird niemals angezeigt oder anderweitig verwendet, und die Seite wird aktualisiert.Fügen Sie Ihrem HTML-Code ein Formular hinzu:
und verwenden Sie JQuery, um diese Werte zu füllen (natürlich können Sie auch Javascript verwenden, um etwas Ähnliches zu tun)
Dann senden Sie endlich das Formular
auf der Serverseite sollten Sie in der Lage sein , die Daten , die Sie geschickt zu erhalten , indem überprüft
var1
undvar2
, wie dies auf tun , hängt was serverseitige Sprache Sie verwenden.quelle
Verwenden Sie diese Datei: "jquery.redirect.js"
Siehe https://github.com/mgalante/jquery.redirect
quelle
Kurze Antwort: nein.
window.location.href
kann keine POST-Daten übergeben.Etwas zufriedenstellendere Antwort: Mit dieser Funktion können Sie alle Ihre Formulardaten klonen und senden.
submitMe.importFields(form_element);
für jedes der drei Formulare, die Sie einreichen möchten.<input name="email">
In haben<form name="login">
, lautet der übermittelte Namelogin_name
.nameJoiner
Variable in eine andere Variable ändern,_
damit sie nicht mit Ihrem Eingabe-Benennungsschema in Konflikt steht.submitMe.submit();
quelle
Wie bereits in anderen Antworten erwähnt, gibt es keine Möglichkeit, eine POST-Anfrage mit window.location.href zu stellen. Dazu können Sie ein Formular erstellen und es sofort senden.
Sie können diese Funktion verwenden:
https://stackoverflow.com/a/133997/2965158
quelle
es ist so einfach
Ich musste dieses Problem lösen, um eine Bildschirmsperre für meine Anwendung zu erstellen, bei der ich vertrauliche Daten als Benutzer und die URL, unter der er arbeitete, übergeben musste. Erstellen Sie dann eine Funktion, die diesen Code ausführt
quelle
done()
Funktionssatzwindow.location.href
Haben Sie darüber nachgedacht, einfach Local / Session Storage zu verwenden? -oder- Abhängig von der Komplexität Ihres Gebäudes; Sie könnten sogar indexDB verwenden.
Hinweis :
Local storage
undindexDB
sind nicht sicher - daher möchten Sie vermeiden, dass vertrauliche / persönliche Daten (z. B. Namen, Adressen, E-Mail-Adressen, Geburtsdaten usw.) in diesen beiden Daten gespeichert werden.Session Storage
ist eine sicherere Option für alle sensiblen Elemente. Sie ist nur für den Ursprung zugänglich, der die Elemente festgelegt hat, und wird auch gelöscht, sobald der Browser / die Registerkarte geschlossen wird.IndexDB
ist etwas komplizierter [aber nicht viel komplizierter] und30MB noSQL database
in jeden Browser integriert (kann aber grundsätzlich unbegrenzt sein, wenn sich der Benutzer anmeldet) -> Wenn Sie das nächste Mal Google Docs verwenden, öffnen Sie DevTools -> Anwendung -> IndexDB und einen Höhepunkt nehmen. [Spoiler-Alarm: Es ist verschlüsselt].Konzentration auf
Local
undSession Storage
; diese sind beide kinderleicht zu bedienen:Wenn einfach nicht dein Ding ist - oder -, möchtest du vielleicht von der Straße abkommen und gemeinsam einen anderen Ansatz ausprobieren -> kannst du wahrscheinlich ein
shared web worker
... weißt du, nur für Tritte verwenden.quelle
Sie können GET anstelle von pass verwenden, diese Methode jedoch nicht für wichtige Werte verwenden.
In der CustomerBasket.php
quelle