我試圖將String作爲錯誤消息回顯,但仍然在Jquery Ajax中將整個頁面變爲響應,儘管正確的輸入被重定向到了正確的頁面。在jQuery中獲取整個頁面作爲響應aJax
PHP
if($_GET['action']=="login"){
if (isset($_POST)) {
$username = mysqli_real_escape_string($link, $_POST['username']);
$password = md5($salt.mysqli_real_escape_string($link, $_POST['password']));
try{
validateLoginInputs();
loginUser($username, $password);
echo "1";
} catch(Exception $e){
echo $e->getMessage(); //I think something is wrong with this line
}
}
功能 - loginUser
function loginUser($username,$password){
global $link;
$query = "SELECT * FROM `users` WHERE `username` = '$username' AND `password` = '$password' LIMIT 1";
$result = mysqli_query($link, $query);
$row = mysqli_fetch_assoc($result);
$_SESSION['id'] = $row['id'];
$_SESSION['username'] = $row['username'];
if(!$row){
throw new Exception("Username or Password didn't match");
}
}
jQuery的
else if ($("#loginorsignup").val()==="1") {
$.ajax({
url: "action.php?action=login",
type: "POST",
data: "username="+$("#username").val()+"&password="+$("#password").val(),
success: function(response){
if(response!=1){
console.log(response); // getting html of index.php When username or password is incorrect
$("#userWarnings").html(response).show();
}else if(response==1){
console.log(response);
window.location.assign("home.php");
}
}
});
}
集裝箱顯示錯誤
<div class="modal-body">
<div class="alert alert-warning" role="alert" id="userWarnings">
</div>
可以將'echo「1」;'改爲'exit(1)'。我個人會發回JSON,以及正確的內容類型標題。例如。 '{成功:錯誤,信息:'一些錯誤信息'}' – ficuscr
那'是一個不錯的主意,它沒有'在我看到視頻教程時會發現我的想法。謝謝。 – feedammo