2016-08-02 4 views
0

私はクッキーについて学んできました。私は 'ItemCart'という名前のクッキーから買い物カゴで使用する特定の製品ハッシュを削除しようとしていました。 クッキーは次のようにフォーマットされています。なぜこのクッキーは割り当てられたときにその値を変更しませんか?

ItemCart = productHash;

ただし、削除しようとすると、何とか変更が拒否されているように見えます。

var cookieRemoval = document.cookie.replace("ItemCart="+this.getAttribute("data-hash")+"; ", ""); 
document.cookie = cookieRemoval; 
console.log(document.cookie + " should now be " + cookieRemoval); 

データ・ハッシュがクッキーにハッシュを削除するためにクリックされているページの現在の要素のdata属性である:ここでは、JSのコードがあります。ここで

は、コンソールの出力(PHPのセッションのゴミを避ける)である:

ItemCart=EyG439ktw8hT; should now be 

これは置き換える機能が正しく行われますが、クッキーが変更されないことを意味します。

これは、期限切れの日付を直接処理しないことと何らかの関係がありますか?

私はここで何が起こっているのか分かりません。どんな助けもありがとうございます。

答えて

1

document.cookieこのようには機能しません。実際の変数ではありません。special syntaxのようになります。

クッキーの設定を解除するには、確かに、かなり奇妙です

document.cookie = "ItemCart=; expires=Thu, 01 Jan 1970 00:00:00 GMT;" 

を行います。

+0

したがって、文字列に存在するCookieの名前はそのまま残しておきますが、コンテンツを削除できますか?また、有効期限についても心配する必要がありますか?ありがとう。 –

+0

いいえ、構文 'document.cookie = x'は" set document.cookie to x "を意味しません。これは「説明xに基づいて新しいクッキーを設定する」ことを意味します。実際、私が投稿した行は、ItemCartを期限切れにすることを1つ正確に行います。他のCookieは影響を受けません。私が言及したように、これはかなり奇妙で、いくつかは慣れています。 –

+0

ありがとうございます。私はそれを治療していたので、通常の変数ではありません。ありがとう –

関連する問題