Я новичок в AngularJS, но я уже многое сделал.
Я сделал $ http.post, который работал как шарм.
Вот угловой код
$scope.login = function(user, pass) {
$scope.bIsVisible = false;
var dados = {"user": user, "pass": pass};
console.log(dados);
$http.post('http://base.corretoconcursos.com.br/cadernos/index.php/manageUsers/login', dados)
.success(function(data, status, headers, config) {
if (data == false)
{
$scope.isLogged = false;
$scope.bIsVisible = true;
} else {
$scope.isLogged = true;
$scope.userData = data;
console.log(data);
}
})
.error(function(data, status, headers, config) {
alert('failed');
$scope.bIsVisible = true;
});
И manageUsers / Войти функция
function login()
{
$postdata = file_get_contents("php://input");
$data = json_decode($postdata);
$username = $data->user;
$password = md5($data->pass);
$datafrombase = $this->UsersModel->getUser(array(
'user' => $username,
'pass' => $password
));
if ($datafrombase != null) {
$user = array(
'user' => $datafrombase['user'],
'type' => $datafrombase['type'],
'logged_in' => true
);
$this->session->set_userdata($user);
}
if ($datafrombase != null)
print_r(json_encode($datafrombase));
else
return false;
}
Хорошо. Работает. Я получаю некоторые данные из базы данных и ОК. Настоящая проблема, когда я делаю $ http.get и просто, выполняя запрос к базе данных или нет, он не отправляет обратно нужные мне данные, когда я выполняю console.log (data), он показывает мне полностью HTML-страницу, фактически ту, которая отображает , Я получаю статус 200 ОК, но HTML-страница идет. Не знаю почему.
Вот Угловой код
$scope.setLoggedOn = function(on) {
if (on) {
$http.get('http://base.corretoconcursos.com.br/cadernos/index.php/manageUsers/retrieveLogin')
.success(function(data, status) {
console.log(data);
})
.error(function(data, status, headers, config) {
alert('failed');
});
}
else
$scope.isLogged = false;
};
И вот Функция кода PHP Я возвращаюсь.
function retrieveLogin()
{
$user = null;
$user = array(
'user' => $this->session->userdata('user'),
'type' => $this->session->userdata('type'),
'logged_in' => true
);
print_r(json_encode($user));
}
Я застрял. Я даже пытался сделать только «вернуть истину»; внутри функции PHP, вернуть ‘строку’; но ничего не получится. Что я не так делаю?
Догадаться. Если вы используете CodeIgniter в сеансах; и проверка в конструкторе, вошли ли люди, чтобы они могли видеть эту страницу или нет; когда вы выполняете $ http.get, он запускает конструктор и запускает это условие, и если они не видят эту страницу, даже если вы просто делаете запрос с этого контроллера через AJAX, он не позволит вам выполнить запрос ,
Я думал, что $ http.get только запросит функцию (i-e, verifyUserInDatabase ();) и выдаст данные, но оказывается, что нет.
Спасибо за помощь.
$ datafrombase никогда не устанавливается в retrieveLogin (), поэтому angular ничего не получит.