【问题标题】:Ajax/PHP .post, and .load dont return any dataAjax/PHP .post 和 .load 不返回任何数据
【发布时间】: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']的任何原因?

标签: php jquery ajax


【解决方案1】:

我唯一想说的就是尝试做:

return "1"

ajax 请求使用智能来尝试找出返回数据类型,但可能存在问题,因为它不是字符串,也不是 json 或 html。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    相关资源
    最近更新 更多