我知道在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
!
关于我的错误在哪里的任何建议???
编辑:这可能与重写规则有关但不重复,因为相同的答案无法解决这个问题!
答案 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);
});
});