2012-11-09 171 views
0

我有三个cookie compare1,compare2和compare3。用户点击关闭按钮后,我想删除cookie,然后获取设置为compare2或compare3或compare1的cookie。我使用的是相同的JavaScript,但我的cookies不会被删除。这里是我的代码:Cookie中未删除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,并获取剩余的两个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); 
+1

Cookie是如何创建的?他们是否有指定的域或路径?如果是这样,您需要在删除时指定相同的域和路径。 –

+0

Cookie的创建取决于您的路径和域名以便删除。因此,请告诉我们您是如何创建cookie的。 – Pranav

+0

创建cookie时,我没有设置域或路径。我想在不刷新页面的情况下删除Cookie。我使用php $ 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); – asifa

回答

0

您需要为cookie添加“路径”。例如:

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

该路径代表了您的网站中cookie的可读性相对路径。路径= /意味着它将在你的整个网站中可读。路径= /普通/意味着它只会在/普通/文件夹(及其子文件夹)

这里是可读的是MDN约饼干很好的教程: -

更新: -

时创建的Cookie尝试添加路径也: -

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

你可以检查出this也: -

+0

我试过了你的回复,但我的cookie只在页面刷新时被删除。我不想刷新页面。 – asifa

+0

你能告诉我你的set_cookie($ cookie)函数吗......可能是我可以帮忙 – Pranav

+0

我已经在上面的问题中加入了它。我通过php设置cookie – asifa