我有这个代码:
<form name="login" class="login-form" action="" method="post">
<h2>Log In</h2>
<div class="error" style="display:none"></div>
<input type="text" id="login-username" placeholder="Full Name" />
<input type="password" id="login-password" placeholder="Password" />
<button onclick="submitLogin();">Log In</button>
</form>
<script type="text/javascript">
function submitLogin() {
username = $("#login-username").val();
password = $("#login-password").val();
$.ajax({
type: "POST",
url: "login.php",
data: "name=" + username + "&pwd=" + password,
success: function(html) {
if (html == 'true') {
//$("#add_err").html("right username or password");
window.location="dashboard.php";
}
else {
$("#error").css('display', 'inline', 'important');
$("#error").html("<img src='images/alert.png' />Wrong username or password");
}
},
beforeSend: function() {
$("#error").css('display', 'inline', 'important');
$("#error").html("<img src='images/ajax-loader.gif' /> Loading...")
}
});
return false;
}
这是登录.php:
<?php
require_once 'config.php';
session_start();
$uName = $_POST['login-username'];
$pWord = md5($_POST['login-password']);
$qry = "SELECT usrid, username, password FROM users WHERE username='".$uName."' AND password='".$pWord."'";
$res = mysql_query($qry);
$num_row = mysql_num_rows($res);
$row = mysql_fetch_assoc($res);
if( $num_row == 1 ) {
echo 'true';
$_SESSION['uName'] = $row['username'];
}
else {
echo 'false';
}
?>
当我单击“登录”时,页面似乎会重新加载或至少更新。没有错误,但也没有成功。因为我一生都无法弄清楚出了什么问题。我们将不胜感激。
最佳答案
编辑: 我已经获取了你的代码并对其进行了一些处理。这是我发现的:
首先 - 表单提交后您的页面会刷新,对吧? 您必须禁用默认表单提交事件,例如如下所示:
$("form").submit(function(ev){
ev.preventDefault();
});
它的作用是 - 它捕获默认的提交事件,作为“ev”变量,并阻止它触发。
这应该会阻止您的页面刷新。
接下来 - 请务必检查您的 ajax.url 变量 - 它是否确实针对正确文件夹中的正确文件?
代码的其余部分看起来不错 - 我设法在测试中获得正确的响应。
尝试一下,然后返回反馈。
*//下面的旧消息*
您发送 ajax 请求:
$.ajax(
data: "name=" + username + "&pwd=" + password
但是在login.php中你要求POST
$uName = $_POST['login-username'];
$pWord = md5($_POST['login-password']);
这很可能会导致一些成本高昂。 首先尝试将其更改为:
$uName = $_POST['name'];
$pWord = md5($_POST['pwd']);
此外,将错误处理程序添加到您的 ajax 请求中:
error: function(responce){
alert(responce);
}
我个人更喜欢 console.log(responce) - 对我来说更容易调试
关于javascript - 通过AJAX登录,没有错误但没有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24952887/