如何在ajax请求页面wordpress中接收数组数据

时间:2018-01-16 10:32:51

标签: angularjs wordpress

我通过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

我在返回数据以检查

时,每个方法都响应为null
echo json_encode($a);

我做错了还是在WordPress中我们无法向PHP发送数组?

1 个答案:

答案 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 () {});