У меня есть простая форма входа с CodeIgniter и jQuery. У меня есть пара вопросов, связанных с переадресацией и передовым опытом. Вот мой код вызова Ajax:CodeIgniter/Ajax - Redirect
$(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();
});
});
Как вы можете видеть, я возвращаю истинным или ложным из моего контроллера (в данных [ «статус»]) и двигаться вперед от этого. Тем не менее, я не уверен, что правильный способ сделать это 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");
}
Однако, это не работает. Я не понимаю, почему это не работает, так что если кто-то может объяснить, что я был бы очень благодарен. большое спасибо.
- @ Trix, вы можете объяснить вторую часть больше? какие данные необходимо вернуть, чтобы изменить URL? –
, пожалуйста, прочитайте комментарий кабаре на ответ d2burke (если это то, о чем вы говорите) – trix