angular $ http.post()和php?

时间:2016-09-05 10:58:34

标签: php angularjs http post

我知道在SO和许多博客上有几篇帖子解释了如何获取发送给php的JSON数据。有些使用url-encoding,有些则使用file_get_contents。

无论如何,它对我不起作用。我确定有一个非常简单的解释,但我的代码根本不起作用(请求被发送,后端回答,但该消息或多或少总是相同的:似乎没有任何东西到达那里!< / p>

所以在我的控制器里我有:

var request_data = {
    firstname: 'Quentin',
    lastname: 'Hapsburg'
  };

$http.post("lib/api/public/blog/post", JSON.stringify(request_data))
    .success(function(data) {
        console.log(data);
    })

在php文件中:

$data = file_get_contents("php://input");
$data = json_decode($data, TRUE);

var_dump($data);

结果是NULL! 关于我的错误在哪里的任何建议???

编辑:这可能与重写规则有关但不重复,因为相同的答案无法解决这个问题!

2 个答案:

答案 0 :(得分:0)

尝试使用 application / x-www-form-urlencoded

$http.post(urlBase, $httpParamSerializer(object), {
    headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
}).then(function(r) {
    callback(r);
});

然后php将能够使用$ _POST

访问您发布的对象

答案 1 :(得分:-1)

请使用此js文件。它会起作用

Index.html:

<html>
<head>
   <script src="js/angular.min.js"></script>
</head>

<body ng-app="myApp">
<div ng-controller="mainCtrl">
    sdadasdasd
</div>
<script src="app.js"></script>
</body>
</html>

app.js:

var app = angular.module("myApp", []);
app.controller("mainCtrl", function($scope,$http){
    var request_data = {
        firstname: 'Quentin',
        lastname: 'Hapsburg'
    };

    $http.post("test.php", JSON.stringify(request_data)).success(function(data) {
        console.log(data);
    });
});