Angular JS发送带有$ http的JSON

时间:2015-05-04 20:47:11

标签: json angularjs post

我有问题发送带有角度的json数据,从PHP我需要访问$ _POST [' action']

这有效

   $http({
                method: 'POST',
                url: ajaxurl,
                data: "action=get_employer_jobs",
                headers: {'Content-Type': 'application/x-www-form-urlencoded'}
            }).success(function (data) {
                console.log(data);
                $scope.jobs = data;
            });

这不起作用

   app.controller('MainController', ['$scope', '$http', function ($scope, $http) {
            console.log('MainController Running');
            $http({
                method: 'POST',
                url: ajaxurl,
                data: JSON.stringify({action:"get_employer_jobs"}),
                headers:  {'Content-Type': 'application/json'}
            }).success(function (data) {
                console.log(data);
                $scope.jobs = data;
            });
        }]);

2 个答案:

答案 0 :(得分:0)

您需要以不同方式处理服务器端的json。

在PHP中,我这样做:

$_REQUEST = json_decode(file_get_contents("php://input")); 

Angular将POST数据作为json字符串发送的方式,你需要获取整个请求字符串,解析它,然后你可以使用它。在你进行这种解析之前,它不会自动作为一个很好的数组在$ _POST或$ _REQUEST中。

答案 1 :(得分:0)

我也遇到同样的问题,看起来PHP在$_POST服务传递时没有填充$http数组。

尝试直接解析$_POST

,而不是使用php://input

php $postdata = file_get_contents("php://input"); $request = json_decode($postdata); var_dump($request)

然后您可以使用对象表示法$request->my_var

进行访问