使用PHP检索AngularJS $ http.post服务器数据

时间:2016-04-06 11:38:21

标签: php angularjs

我正在调用$ http.post函数,但无法获取另一方的数据,调用成功但无法检索PHP脚本中的数据

AngularJS

    var data = {
        firstname: $scope.first_name,
        lastname: $scope.last_name,
        email : 'test@fff.com',
        user : userID
    };
    var config = {
        headers : {
            'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
        }
    } 
$http.post('http://xxx-env.us-east-1.elasticbeanstalk.com/apipost/updateusersetting/user/'+userID, data, config).success(function (data, status, headers, config) {
        alert('yay'); // this works and gets called
    })
    .error(function (data, status, header, config) {

});

服务器端PHP:

    $data = json_decode(file_get_contents("php://input"));
    $email = $data->email;
    $user = $data->user;
    $firstname = $data->firstname;
    $lastname = $data->lastname;

也尝试了这个,不起作用

        $email = $_POST['email'];
        $user = $_POST['user'];//$data->user;
        $firstname = $_POST['firstname']; //$data->firstname;
        $lastname = $_POST['lastname']; ;//$data->lastname;

2 个答案:

答案 0 :(得分:0)

为$ http中的每个帖子传递数据。例如

$http({
            method  :'POST',
            url:'server/company/addData',
            data: $scope.FormData,
            headers: {'X-API-KEY': $rootScope.currentUser.key}

        })
            .success(function(data){
                console.log(data);

            });

这里我为服务器端脚本发布的数据包含范围内的Formdata值。

答案 1 :(得分:0)

如果要将json发送为JSON.stringify(),请使用JSON来包装json。

var parameter = JSON.stringify(data);

以下是您拨打电话的方式。

$http({
    method: 'POST',
    url: 'http://xxx-env.us-east-1.elasticbeanstalk.com
                /apipost/updateusersetting/user/'+userID',
    data: parameter ,
    headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'}
})