2011-05-30 102 views
1

我有以下函数用于检查登录cookie的存在。如果cookie不见了,用户将被带到该站点的公共端。该cookie允许用户保留在私人部分。JQuery和ajax怪异行为

我在私人方面使用AJAX更新,发生的情况是,在checkCookie函数执行setInterval后,在此点之后发生的任何更新都会在另一个窗口内打开一个窗口;很像在另一个框架内打开的框架。在此函数触发之前发生的任何更新都可以。

当我评论以下代码时,所有更新都没有发生任何问题。

为什么会发生这种情况,我该如何解决这个问题?

function checkCookie(){ 
    $.ajax({ 
     type: "POST", 
     url: "/index.php", 
     data: "loaded=true", 
     dataType: 'json', 
     success: function(data){ 
     if(data.cookie == 0){ 
      window.location.href = data.href; 
     } 
     } 
    }); 
    } 
    window.setInterval(checkCookie, 60000); 

回答

0

设置window.location.href,使新的URL的GET请求,不POST,因此使用window.location.href它无法发送POST请求。

你需要做的是设置一个带有数据字段的表单标签,将表单的action属性设置为URL,将方法属性设置为POST,然后在表单标签上调用submit方法。

(摘自:pass post data with window.location.href


window.location.reload()重新加载当前页面用POST数据!

,你就还是要用:

if($.cookie('cookieName') == null) { 
    //do something  
} 
+0

感谢罗克森但没有做任何事情。我仍然有这些窗户打开对方。尽管我很欣赏你的回答。 – jim 2011-05-31 00:20:17

+0

reedited我的答案 – 2011-05-31 00:28:13