21

私は次の構文を使用してCookieを設定しています。

Set-Cookie:Cookie-name=value; path=/; Max-Age=1296000; HttpOnly

グーグルクロームコンソールでは 、そのクッキーの無効な日付が表示されています。

構文の何が問題になっていますか?

http://en.wikipedia.org/wiki/HTTP_cookie#Expires_and_Max-Age http://tools.ietf.org/html/rfc6265#section-5.2.2によると、 Max-Ageを使用して相対的な有効期限を指定できます。

4

2 に答える 2

6

私はそれがあなたが解決できる/すべきことではないと思います。使用しているInspector/Devツールは、他のユーザーが示すように常に正しいとは限りません。「ネットワーク」ツールのように、開発ツールが間違っている場合もあります。このCookieを編集
するなどの拡張機能をインストールして、Cookieの動作を確認できます。リダイレクト全体を追跡するのには役立ちませんが、どのCookieが設定されているかを知るのに役立ち、それを変更することもできます。

于 2013-02-12T08:01:43.527 に答える
4

アップデート

追加のテストを実行し、以下にリストされている問題123013と同じ結論に達しました。これは単なるDevToolsのバグだと思います。

DevTools>Networkが日付を誤ってレンダリングしているように見えます。ただし、DevTools> Resourcesは、他のブラウザと同様に日付を正しく表示します。

また、私が作成した別のCookieの有効期限が切れました。これは、DevTools> Resourcesには反映されていましたが、DevTools>Networkには反映されていませんでした。。

試験結果

setcookie('foo', 'bar', time()+3600, "/", NULL, false, true);

Chrome v24.0.1312.57
  Resources > Cookies   Thu, 14 Feb 2013 17:08:33 GMT
  Network > Cookies     Invalid Date

Firefox 18.0.2          Thursday, February 14, 2013 11:59:15 AM
IE9 9.0.8112.16421      Thu, 14-Feb-2013 17:06:42 GMT

最後に、結論として、構文は正しいように見えます。「無効な日付」というメッセージはChromeのバグのようです。


Chromev24.0.1312.57ではこの問題を再現できませんでした。JavaScriptとPHPでさまざまなテストCookieを設定しました。Chromeはエラーをスローせず、max-age渡した値を対応するexpires値に正しく変換しました。

このバグ、または非常によく似たものが提出され、明らかに修正されています。

WebKit

クロム

于 2013-02-08T02:55:03.310 に答える