【发布时间】:2011-04-16 16:11:13
【问题描述】:
我有一个使用 CodeIgniter 和 jQuery 的简单登录表单。关于重定向和最佳实践,我有几个问题。这是我的ajax调用代码:
$(document).ready(function(){
$("#btnLogin").click(function(e) {
$("p.error").hide();
var email = $("#email").val();
var password = $("#password").val();
$(".loader").show();
$.ajax({
type: "POST",
url: "/login/go",
data: ({email: email, password: password}),
success: function(data){
$(".loader").hide();
if(!data['status'])
{
$("p.error").html(data['error']);
$("p.error").slideDown("fast");
}
else
{
window.location = "site/index";
}
}
});
e.preventDefault();
});
});
如您所见,我从控制器(在 data['status'] 中)返回 true 或 false,然后继续前进。但是,我不确定window.location = "" 是否是正确的方法。安全方面,可以把那个 URL 放在那里吗?
人们必须先登录才能访问站点/索引。正确登录会设置 CI 会话和站点/索引检查。如果有人没有登录,他们会被重定向到登录页面。我只是觉得在我的 ajax 调用中有那个 URL 有点奇怪,哈哈 :(
我试图通过在设置会话后将redirect("site/index") 放入我的控制器来解决这个问题。一些代码,所以这是有道理的:
if ($this->form_validation->run() == FALSE)
{
// validation failed, returns false
}
else
{
// successful
// sets session and then i tried doing:
redirect("site/index");
}
但是,这不起作用。我真的不明白为什么它不起作用,所以如果有人能解释一下,我将非常感激。非常感谢。
【问题讨论】:
标签: jquery ajax codeigniter redirect