无法比较Ajax中的php返回值

时间:2018-10-05 15:08:44

标签: php jquery ajax

我对Ajax / PHP有问题。

示例:

我的jQuery

//LOGIN-----------------------------

$('#login').click(function() {

$username = $('#username').val();
$password = $('#password').val();

 $.ajax({
  type: "POST",
  url: "../php/ajax.php",
  data: {
        action: "login", 
        username: $username, 
        password: $password
        },
  success: function(data)
  {
    if (data === 'login') {
        window.location = '../www/master.php';
    }
    else {
        alert(data);
    }
  }
  });
});  

这是我收到PHP的一部分:

if (isset($_POST['action'])) {
    switch ($_POST['action']) {
        case 'login':
            if($db->Login($_POST['username'], $_POST['password'])){
                echo 'login';
            }
            break;
   }
}

当我尝试登录警报时,在弹出窗口中提示我“登录”。因此,似乎一切正常,PHP正在将“登录”发送回Ajax,但是它没有接受并重定向用户,而是认为出了点问题,然后运行else -statement。

通过这种方式,连接有效,当我尝试在查询中插入INSERT时,记录显示在DB中,但是仍然存在来自Ajax的问题​​。

有什么想法吗?

亲切的问候,

2 个答案:

答案 0 :(得分:0)

尝试将strict运算符===降级为标准==运算符。

您应该检查要返回的数据的类型:

console.log(typeof data);

并且仅在之后使用严格的比较运算符,您可以确定要处理的数据类型。

答案 1 :(得分:0)

AJAX响应周围可能有空白。尝试在比较之前修剪字符串:

List<>