PHP没有收到$ http.post发送的数据

时间:2015-02-12 16:53:02

标签: php angularjs

我在AngularJS控制器中有一个函数,它允许我将POST数据发送到PHP页面(它应该用于身份验证)

$scope.submit = function () {
    $http.post(api + 'login.php', $scope.user)
};

从此HTML代码

调用此函数
<div>
    <span ng-show="isAuthenticated">{{welcome}}</span>
    <form ng-show="!isAuthenticated" ng-submit="submit()">
        <input ng-model="user.username" type="text" name="user" placeholder="Username" />
        <input ng-model="user.password" type="password" name="pass" placeholder="Password" />
        <input type="submit" value="Login" />
    </form>
    <div>{{error}}</div>
    <div ng-show="isAuthenticated">
        <a ng-click="logout()" href="">Logout</a>
    </div>
</div>

在Firefox中使用Firebug我可以看到调用了auth页面并正确发送了POST数据

enter image description here

我的auth PHP代码中出现问题:我尝试检索POST数据,但是数组是空的 我也尝试在文件中写内容,我可以确认数组是空的(文件包含[])

$userdata = $_POST;
file_put_contents("login.txt",json_encode($userdata)."\n", FILE_APPEND);

我的代码出了什么问题? 我也尝试过从POST更改为GET(使用$http.get),但$ _GET数组也是空的......

1 个答案:

答案 0 :(得分:7)

Angular以json而不是表单数据的形式发送数据来检索它,你可以做类似的事情:

$_JSON = json_decode(file_get_contents("php://input"), true);