JQuery和ajax奇怪的行为

时间:2011-05-30 23:32:31

标签: jquery

我有以下用于检查是否存在登录cookie的函数。如果cookie消失,用户将被带到站点的公共端。 cookie允许用户保留在私有部分。

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

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

为什么会发生这种情况,我该怎么做才能纠正这个问题?

  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);

1 个答案:

答案 0 :(得分:0)

设置window.location.href对新网址发出GET请求,而不是POST,因此使用window.location.href无法发送POST请求。

您需要做的是设置一个包含数据字段的表单标记,将表单的action属性设置为URL,将method属性设置为POST,然后在表单标记上调用submit方法。

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


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

你仍然需要使用:

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