angular$http.postreturns代码302

angular $http.post returns code 302

我有以下 php:

    public function getLoggedInUser()
{
    if($this->isAjax())
    {
        exit (json_encode($_SESSION['User']));
    }
}

以及以下 angular:

    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 没有发送到服务器。

为什么不是?

请注意,我不是 PHP 专家,但我做了一些与另一个相关的测试 AngularJS few days ago, which is quite similar to this one. So my solution here is based on my experience relating to that previous PHP post data experience. Also php manual for $_SESSION 在这里使用。

首先,我会将您的 php 代码放入 getLoggedInUser.php 文件中,如下所示:

<?php
 if ($_SERVER["REQUEST_METHOD"] === "POST")
 {
    echo $_SESSION["User"];  
 }
?>

然后对 用户控制器

//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 对我来说很新,如果有人对如何进行此 post 调用有不同看法,请随时对此解决方案发表评论 :-) 顺便说一句,我查看了其他 php post 问题解决方案(没有 AngularJS),例如 this one,但我仍然不确定处理此 post 的最佳方式是什么问题。