我的JSON数据的示例:
$scope.a = [{
"email": "keval@gmail",
"permissions": {
"upload": "1",
"edit": "1"
}
}, {
"email": "new@aa",
"permissions": {
"upload": "1",
"edit": "1"
}
}];
我想发布相同内容,这是我的方法:
$http({
method: 'POST',
url: 'backend/savePermissions.php',
data: {
mydata: $scope.a
},
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
.success(function(data) {
console.log(data);
});
PHP将接收请求并回复:
echo $_POST['mydata'];
我在通话前JSON.stringify
和json_decode
同时回复了它;仍然没有奏效。一直在尝试我能想到的所有可能性,以及我在网络/其他问题上找到的,但仍然没有工作。
答案 0 :(得分:6)
我为你做了plnkr http://plnkr.co/edit/K8SFzQKfWLffa6Z4lseE?p=preview
$scope.postData = function () {
$http.post('http://edeen.pl/stdin.php', {user:$scope.formData}).success(
function(data){
$scope.response = data
})
}
你可以看到我发送原始JSON而没有格式化,然后在php中
<?php
echo file_get_contents('php://input');
我直接阅读JSON并回复它,但你可以做任何你想做的事情
详细了解php://input
http://php.net/manual/en/wrappers.php.php
我长时间使用REST服务以避免将JSON转换为字符串多次
答案 1 :(得分:2)
我使用它,我可以使用它发送Array JSON:
var array = {}
array['key1'] = value1;
array['key2'] = value2;
$http.post(URL, array)
.success(function(data){
})
.error(function(){
});
答案 2 :(得分:1)
尝试使用$ httpParamSerializer或$ httpParamSerializerJQLike
$http({
method: 'POST',
url: 'backend/savePermissions.php',
data: $httpParamSerializer($scope.a),
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
.success(function(data) {
console.log(data);
});