JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

【JavaScript入門】AJAXリクエスト時にCookieを設定してサーバーへ自動送信する方法

AJAXリクエストとCookieの基本的な仕組み

Web開発では、AJAXリクエストの実行時に特定のCookieをサーバーへ送信したいというケースがよくあります。「どうやってリクエストにCookieを紐付けるのか」と悩む方も多いかもしれませんが、実は特別な処理はほとんど不要です。

ここで押さえておきたい重要なポイントは、リモートサーバーへのすべてのAJAXリクエストには、開発者が何もしなくても、ブラウザが保持しているすべてのCookieが自動的に送信されるという点です。これはブラウザの標準的な動作であり、意識的に設定を追加する必要はありません。

したがって、私たちがやるべきことはシンプルです。JavaScriptを使ってdocumentオブジェクトに目的のキー(Cookie)を設定しておけば、あとはネットワーク通信が発生するたびに、そのCookieが自動的にリクエスト先のサーバーへ送られる仕組みになっています。

JavaScriptでCookieを設定する基本のコード

Cookieの設定は、document.cookieに「キー=値」の形式で代入するだけで完了します。以下がそのコード例です。

const token = 'some 323 very 535 random 5445 value';
document.cookie = `token=${token}`;

この1行だけで「token」という名前のCookieがブラウザに保存され、以降に行われるすべてのAJAXリクエストや通常のHTTPリクエストに自動的に含まれるようになります。

有効期限(expires)を指定したCookieの設定方法

デフォルトで設定されたCookieはセッション終了時に削除されますが、将来の特定の日時で失効するCookieを作成したい場合は、expires属性を追加します。

const token = 'some 323 very 535 random 5445 value';
const expiry = 'Wed, 4 Feb 2021 12:00:00 UTC';
document.cookie = `token=${token}; expires=${expiry}`;

このようにexpiresにUTC形式の日時を指定することで、その日時を過ぎるとCookieは自動的に無効化されます。複数の属性を指定する際は、各属性をセミコロン(;)で区切る点に注意してください。

まとめ

AJAXリクエストにCookieを送るための専用の実装は必要ありません。document.cookieでトークンなどの値をあらかじめ設定しておけば、以降のすべてのネットワークリクエストにおいて「token」Cookieが自動的にサーバーへ送信されます。認証トークンの管理などでもよく使われるテクニックなので、ぜひ覚えておきましょう。

  1. JavaScriptでフォントの太さ(ウェイト)を設定する方法

    JavaScriptでフォントの太さを設定するには、fontWeightプロパティを使用します。このプロパティには「normal」「bold」「bolder」「lighter」などのキーワード、または100〜900までの数値(100刻み)を指定できます。数値が大きいほど文字が太く表示され、例えば「800」は非常に太いウェイトに相当します。サンプルコード以下のコードを実行すると、JavaScriptでフォントの太さを設定する動作を実際に確認できます。ボタンをクリックすると、指定した要素のフォントファミリーとフォントの太さが同時に変更されます。<!DOCTYPE html> <h

  2. JavaScriptで要素のマージンを設定する方法をわかりやすく解説

    JavaScriptで要素のマージンを設定するには、marginプロパティを使用します。このプロパティを使うと、要素の外側の余白(マージン)を上下左右の4辺まとめて指定することができます。marginプロパティの基本的な使い方JavaScriptでは、element.style.marginに値を代入することでマージンを設定できます。値は「上・右・下・左」の順に半角スペースで区切って指定するのが基本です。サンプルコード以下の例では、ボタンをクリックすると段落要素の4辺すべてにマージンが設定されます。実際にコードをコピーしてブラウザで実行し、動作を確認してみてください。<!DOCTYPE