我有以下用于检查是否存在登录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);
答案 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
}