私はAngularJSは初めてですが、すでに多くのことを行っています。$http.post を実行しましたが、これは魅力的でした。
Angular コードはこちら
$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;
}
大丈夫。それは働いています。データベースからいくつかのデータを取得し、OK です。本当の問題は、私が$http.getを実行し、単にデータベースでリクエストを実行するかどうかにかかわらず、必要なデータを送り返さないことです。console.log(data) を実行すると、完全に HTML ページであり、実際に表示されているページです。200 ステータス OK を取得していますが、HTML ページが来ています。理由がわからない。
Angular コードはこちら
$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));
}
私は立ち往生しています。「trueを返す」だけでも試してみました。php 関数内で、'string' を返します。しかし、何も機能しません。私は何を間違っているのですか?