我有以下php:
public function getLoggedInUser()
{
if($this->isAjax())
{
exit (json_encode($_SESSION['User']));
}
}
以下角度:
userModule.controller('UserController', [ '$http', function($http)
{
var userCtrl = this;
this.user = {};
$http.post('/User/getLoggedInUser', {request: 'ajax'}).success(function(data)
{
userCtrl.user = data;
});
}]);
我得到代码302但没有找到结果且php脚本没有运行。
我做错了什么?
更新
调试后我的PHP核心我可以看到变量request
没有发送到服务器。
为什么不呢?
答案 0 :(得分:1)
注意我不是PHP专家,但是几天前我做了一些关于另一个AngularJS post request的测试,这与这个很相似。所以我的解决方案基于我之前的PHP后期数据体验。此处还使用了$_SESSION的php手册。
首先,我将你的php代码放在 getLoggedInUser.php 文件中,如下所示:
<?php
if ($_SERVER["REQUEST_METHOD"] === "POST")
{
echo $_SESSION["User"];
}
?>
然后对其进行一些更改 UserController
//added $scope in the controller's function parameters, just in case
userModule.controller('UserController', [ '$http', function($scope, $http)
{
var userCtrl = this;
this.user = {};
//let’s pass empty data object
var dataObj = {};
$http.post('User/getLoggedInUser.php', dataObj).
success(function (data, status, headers, config)
{
console.log("success");
userCtrl.user = data;
//if the above doesn’t work, try something like below
// $scope.userCtrl.user = data;
})
.error(function (data, status, headers, config)
{
console.log("error");
});
}]);
我希望这有助于解决这个问题。
一些注意事项:AngularJS对我来说是一个新手,如果有人对这个帖子的调用有不同的看法,那么随意评论这个解决方案:-)顺便说一句,我看了一些其他的php post issue解决方案(没有AngularJS),如this one,我仍然不确定处理这个帖子问题的最佳方法是什么。