我通过angularJs $ http向PHP发送数组,但是当我收到数据时它显示为null,我不知道我的程序是否正确,
js文件是
var newdisable_comments_on_post_types = JSON.stringify(allTabData.disable_comments_on_post_types);
$http({
method:'post',
url:url,
params:{
'disable_comments_on_post_types': newdisable_comments_on_post_types
}
});
发送标题时,它会像这样发送
disable_comments_on_post_types:{"post":false,"page":false,"attachment":false}
在PHP文件中,我做了一些接收它的程序
$a = $_POST['disable_comments_on_post_types']['post'];// method 1
$a = $_POST['disable_comments_on_post_types'] // method 2
$x=1
foreach($a as $val){
$b[$x]=$val;
$x++;
}
$a = $_POST['disable_comments_on_post_types']->post;// method 3
我在返回数据以检查
时,每个方法都响应为nullecho json_encode($a);
我做错了还是在WordPress中我们无法向PHP发送数组?
答案 0 :(得分:1)
将 $ http服务更改为:
默认情况下,$ http服务将转换传出请求 将数据序列化为JSON,然后将其与内容一起发布 - 类型,“application / json”
$http({
method: 'POST',
url: url,
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
transformRequest: function(obj) {
var str = [];
for(var p in obj)
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
return str.join("&");
},
data: allTabData.disable_comments_on_post_types
}).success(function () {});