У меня есть простая форма входа в систему с 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();
});
});
Как видите, я возвращаю истину или ложь с моего контроллера (в данных ['status']) и иду вперед от этого. Однако я не уверен, является ли window.location = ""
правильным способом сделать это. С точки зрения безопасности, можно ли разместить этот URL там?
Люди не могут получить доступ к сайту / индексу без входа в систему. Правильный вход в систему устанавливает для этого CI-сеанс и проверки сайта / индекса. Если кто-то не вошел в систему, они будут перенаправлены на страницу входа. Я просто чувствую себя немного странно, имея этот URL в моем вызове ajax, хаха: (
Я попытался решить эту проблему, просто установив 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");
}
Однако это не работает. Я не очень понимаю, почему это не работает, поэтому, если кто-то может объяснить, я был бы очень благодарен. Большое спасибо.