1

クッキーについて困っています。このようなクッキーを書くと

 document.cookie = "userName=" + me.name + ";";

次に、Ajax 呼び出しとページの読み込み (値を読み取って使用する場所) でサーバーに渡されます。ただし、Cookie は次の訪問まで保持されます。つまり、ブラウザを閉じて再度開いても、Cookie は残ります。私はそれをしたくありません。しかし、このようにセッションCookieとして設定すると

 document.cookie = "userName=" + me.name + "; expires=;";

その後、ブラウザーを閉じると正しく削除されますが、Ajax 呼び出しとページの読み込みではサーバーに送信されません。

(注: ブラウザー セッション間で持続するのは IE10 ベータ版のバグである可能性があります。他の投稿では、最初の行で、ブラウザーを閉じたときに有効期限が切れる Cookie を生成する必要があることが示唆されています。)

作成される Cookie の種類に関して、これら 2 つの行の違いは何ですか? また、ブラウザーを閉じたときに消滅するがサーバーに渡される Cookie が必要な場合、それを設定する正しい JavaScript は何ですか?

4

1 に答える 1

2

Cookie の有効期限を指定しない場合、通常、セッションが終了するかブラウザが閉じられると有効期限が切れます。

次のコードの最後に+ " (二重引用符の開始) を使用すると、どのような副作用が生じるのかわかりません。構文エラーはありませんか?

document.cookie = "userName=" + me.name + ";

つまり?

document.cookie = "userName=" + me.name;

また、永続的な Cookie が既に設定されている可能性はありますか?その場合、2 番目のコードだけがそれをセッション Cookie に変更しますか?

于 2012-05-18T16:21:42.180 に答える