【发布时间】:2010-07-04 15:17:32
【问题描述】:
我正在处理 AJAX 登录/注销表单。登录工作正常,但是当有人点击“注销”时,我遇到了一些问题。
Javascript:
$("#logout").live("click", function(){
$.post("/hd/ajax.php",{ logout: "1" }, function(data) {
alert(data);
});
});
Ajax.php:
if(isset($HTTP_POST_VARS['logout']) && $HTTP_POST_VARS['logout'] == 1)
{
$this->auth = false;
$this->un = false;
$this->id = false;
setcookie ($this->cun, "", 1, "/", $this->chn, 0);
setcookie ($this->cpw, "", 1, "/", $this->chn, 0);
echo "1";
return 1;
}
当点击时,请求被发送并且用户被注销就好了。 Alert(data) 没有返回任何东西,即使 PHP 函数返回“1”
我已经手动发布到 ajax.php,并且我的浏览器确实收到了文本“1”。
我也注意到,如果我从回调中删除 alert(),用户实际上并没有通过调用的 PHP 脚本注销。我必须提醒(数据)才能让用户注销。
我唯一能想到的是我在返回数据之前在 PHP 文件中发送 Header 信息(清除 cookie)。这个可以吗?或者这是我的问题的原因?
我觉得我遗漏了一些明显的东西,如果有,请告诉我。
【问题讨论】:
-
您是否验证了 AJAX 请求正在发送并且服务器返回了正确的结果?您可以为此使用 FireBug。
-
您使用
$HTTP_POST_VARS['logout']而不是$_POST['logout']的任何原因?