我是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 / login 功能
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 并且只是通过在数据库上执行请求时,它在我执行控制台时不会发回我想要的数据。 log(数据),它显示了一个完全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函数中执行' return true&#39 ;; ,返回'字符串&#39 ;; 但是什么都行不通。我做错了什么?
答案 0 :(得分:1)
想出来。如果你在会话中使用CodeIgniter;并检查构造函数是否有人登录,让他们看到该页面;当你执行$ http.get时,它将运行构造函数并运行该条件,如果他们看不到该页面,即使你只是通过AJAX从该控制器发出请求,它也不会让你提出要求。
我认为$ http.get只会请求函数(i-e,verifyUserInDatabase();)并提供数据,但事实证明,它没有。
感谢您的帮助。
答案 1 :(得分:0)
$ datafrombase永远不会在retrieveLogin()中设置,因此angular不会收到任何内容。