0

私は3つのクッキーcompare1、compare2、compare3を持っています。ユーザーが閉じるボタンをクリックした後、Cookie を削除してから、compare2、compare3、または compare1 のいずれかに設定された Cookie を取得します。同じためにJavaScriptを使用していますが、Cookieは削除されません。これが私のコードです:

  $('#srchresult #frmCompare a.close').click( function() {
   var parentName = $(this).parent().attr('id');
   var parentId=  parentName.replace('dvPkg','');       
   document.cookie = 'compare'+parentId + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
        alert(document.cookie);
        var username1=getCookie("compare1");
        var username2=getCookie("compare2");
        var username3=getCookie("compare3");

        if (username1!=null && username1!="")
  {
  alert(username1);
  }
   if (username2!=null && username2!="")
  {
  alert(username2);
  }
   if (username3!=null && username3!="")
  {
  alert(username3);
  }
});

Cookie を削除しても、アラートで Cookie が表示されます。ページを更新せずに Cookie を削除し、残りの 2 つの Cookie を取得したい。

Cookie の作成時にドメインまたはパスを設定していません。ページを更新せずに Cookie を削除したい。PHPを使用してCookieを作成しています

  $cookie = array( 'name' => 'compare' . $noOfItem, 'value' => $noOfItem . '^' . $postId . '^' . $postType . '^' . $return_result['deal_title'] . '^' . $return_result['img_filename'] . '^' . $postcompareCountry, 'expire' => '0', ); 

$this->input->set_cookie($cookie);
4

1 に答える 1

0

Cookieに「パス」を追加する必要があります。例えば:

document.cookie = 'cookie2=yet another test; expires=Fri, 27 Jul 2001 02:47:11 UTC; path=/';

パスは、Cookieが読み取り可能なWebサイト内の相対パスを表します。path = /は、Webサイト全体で読み取り可能であることを意味します。path = / common /は、/ common /フォルダー(およびそのサブフォルダー)でのみ読み取り可能であることを意味します

これがCookieに関するMDNの素晴らしいチュートリアルです:-

アップデート :-

Cookieの作成中に、パスも追加してみてください:-

 $cookie = array( 'name' => 'compare' . $noOfItem, 'value' => $noOfItem . '^' . $postId . '^' . $postType . '^' . $return_result['deal_title'] . '^' . $return_result['img_filename'] . '^' . $postcompareCountry, 'expire' => '0','path' => '/' ); 

あなたもこれをチェックすることができます:-

于 2012-11-09T05:57:49.437 に答える