gpt4 book ai didi

php - jQuery AJAX 在我的 PHP MVC 上运行不佳

转载 作者:行者123 更新时间:2023-12-01 06:17:19 24 4
gpt4 key购买 nike

我制作了一个简单的 PHP MVC 框架,将其用于我的 Web 应用程序。但是,当尝试 AJAX 请求(使用 jQuery)时,它的行为不符合预期。以下是相关代码片段:

查看

<input type="text" name="email" id="email">
<input type="password" name="password" id="password">
<a id="btnlogin">Login</a>

Jquery(放置在单独的文件中)

$("#btnlogin").click(function(){
var email = $("#email").val();
var password = $("#password").val();

$.ajax({
type:"POST",
url:"user/login",
data:{email : email, password : password},
cache:false,
success:function(){
alert("suksesssssss");
}
});

Controller 名称:用户

public function login()
{
$email = $_POST['email'];
$password = $_POST['password'];
$this->model->login($email,$password);
}

模型名称:UserModel

public function login($email,$password)
{
$sth = $this->db->prepare("select * from tbl_user where email = :email and password = :password");
$sth->execute(array(
':email' => $email,
':password' => Hash::create('sha256', $password, PASSWORD_HASH_KEY)
));
$count = $sth->rowCount();

if($count > 0)
{
$data = $sth->fetch();

Session::init();
Session::set('id', $data['id']);
Session::set('fullName', $data['nama_lengkap']);


$this->updateLastLogin($data['id']);
$this->updateLoginCount($data['id']);

header('location:' . URL . 'user/profile');
}
else
{
header('location:' . URL . 'home/alogin');
}
}

我的目标是在登录成功后重定向到个人资料页面。但功能:

header('location:' . URL . 'user/profile');

这不会运行..

是什么导致了这种行为?如果我使用 jQuery 重定向到另一个页面会更好吗?

最佳答案

在执行 AJAX 时,您无法使用后端脚本重定向某人。您需要在 $.ajax() 成功回调中返回要重定向到的 url(或通过 js 确定)。

所以:

  header('location:' . URL . 'user/profile');
}
else
{
header('location:' . URL . 'home/alogin');
}

应该是:

  echo json_encode( array( 'redirect' => 'location:' . URL . 'user/profile' ) );
}
else
{
echo json_encode( array( 'redirect' => 'location:' . URL . 'home/alogin' ) );
}

然后,您在成功回调中使用 data 参数:

$.ajax({
//...
success: function(data){
if( data.redirect ){
window.location = data.redirect;
}
}
});

关于php - jQuery AJAX 在我的 PHP MVC 上运行不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11963466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com