我对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的问题。
有什么想法吗?
亲切的问候,
答案 0 :(得分:0)
尝试将strict运算符===
降级为标准==
运算符。
您应该检查要返回的数据的类型:
console.log(typeof data);
并且仅在之后使用严格的比较运算符,您可以确定要处理的数据类型。
答案 1 :(得分:0)
AJAX响应周围可能有空白。尝试在比较之前修剪字符串:
List<>