javascript で POST する
フォームを使わずにデータを POST したくて、javascript で POST してみました。次のような javascript になります。
<script>
function post() {
xhr = new XMLHttpRequest();
xhr.open('POST', '受け取るページ', true);
xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
var request = "data=12345";
xhr.send(request);
}
</script>
例えば、次のようなリンクで呼び出します。
<a href="別のページ" onclick="post(); return true;">送信</a>
リンクがクリックされると「受け取るページ」に POST で data が渡されます。ただし、これはページにデータを送っただけです。実際に送られ、サーバ側で処理されますが、その結果は必要ないので受け取っていません。javascript で POST した時点でそのページの処理は終わっています。その後で、ページ遷移します。
javascript で POST データを送り、そのページを開iいたとしても、開いたページ自体は、POST データのないページが開かれます。web でのデータのやり取りは単発です。サーバは、クライアントから要求があった場合、そのクライアントに応答したら、通信は切断します。データが有効なのは、そのやり取りの間だけなのです。同じページだとしても、javascript で POST データを送った時と、そのページを開いた時は別な接続として扱われます。どうしてもデータを保持したい場合は、セッションも使う必要があります。
2021.05.21 追記
ディスカッション
コメント一覧
まだ、コメントがありません