AJAX调用PHP服务登录。科尔多瓦
我是新手,登录时遇到一些问题。 这是我的jQuery:AJAX调用PHP服务登录。科尔多瓦,php,jquery,ajax,login,Php,Jquery,Ajax,Login,我是新手,登录时遇到一些问题。 这是我的jQuery: jQuery(document).ready(function () { $.ajax({ type: 'POST', url: 'login.php', crossDomain: true, data: 'uname=TEST', dataType: 'json', async: false, success
jQuery(document).ready(function () {
$.ajax({
type: 'POST',
url: 'login.php',
crossDomain: true,
data: 'uname=TEST',
dataType: 'json',
async: false,
success: function (response){
alert ("success");
if (response.success) {
alert("you're logged in");
}else {
alert("Your login failed");
}
},
error: function(error){
alert('Could not connect to the database' + error);
}
});
});
问题是,它总是转到错误回调,我已经尝试自己运行PHP文件,它可以工作(如果我在那里硬编码用户名)
我不知道为什么总是出错,有什么帮助吗
这是PHP:
<?php
header("access-control-allow-origin: *");
header('Content-type: application/json');
include 'conection.php';
mysql_query('SET CHARACTER SET utf8');
$uname = $_POST['user'];
$sql = "SELECT IdUser FROM user WHERE IdUser = '$uname'";
$result = mysql_query($sql);
$num_row = mysql_num_rows($sql);
$row = mysql_fetch_array($result);
//echo $sql . " " . mysql_affected_rows();
if (mysql_affected_rows() == 1) {
$response['success'] = true;
}else{
$response['success'] = false;
}
echo json_encode($response);
?>
您传递给AJAX调用的参数是“uname”,但您在php中查找的参数是“user”-请更改其中一个参数以匹配另一个参数。尝试如下更新:
$.ajax({
type: 'POST',
url: 'login.php',
//crossDomain: true,
data: {"user":"TEST"}, // updated the uname to user which is @ php side
dataType: 'json',
//async: false,
我认为您可以从ajax中提取
crossDomain:true
和async:false
。您确定您的URL是正确的吗?网络监视器(在浏览器开发工具中)向您显示了此请求的哪些信息?为什么设置了跨域
选项?这与Cordova有什么关系?…您不需要传递用户名以外的信息来实际登录(如密码)?因为您没有插入、更新,在查询中替换或删除任何内容,mysql\u受影响的\u行将始终返回零。但这并不是你的错误回调被触发的原因。事实上,这是我在这里编辑代码时采取的措施,所以,在真实版本中,这没关系