angularJS - JSON.stringify()之后的POST数组

时间:2015-05-08 06:24:48

标签: php json angularjs

我希望我的PHP Web服务有POST 3个参数。其中一个是数组,所以我首先使用JSON.stringify()然后将其添加为参数。问题是,PHP没有收到stringify'ed参数。

我的数组是通过获取对象中每个元素的ID来创建的。

将其转换为字符串:

var cid = JSON.stringify(cids);

cid的控制台中输出:

["1","2","3"]

我的$http.post电话:

var dataObj = {
    wid: wid,
    type: type,
    cid: cid
};

$http.post("my.php", dataObj);

根据我的理解,数组被转换为一个字符串,必须得到与其他字符串类似的POST,但当我回显$_POST['cid']时,它变成空白;而wid& type是正确的。

1 个答案:

答案 0 :(得分:2)

根据我的理解,无论如何所有帖子数据都会转换为JSON。手动将数组更改为JSON并包含与以下内容相同:

$http.post("my.php", {
        wid: wid,
        type: type,
        cid: [1, 2, 3]
    }

在连接的另一端,如果可能,JSON将转换回对象(数组)。 PHP没有打印任何东西,因为数组没有很好地转换为字符串。虽然你应该期待字符串'数组'。尝试回复$_POST['cid'][0]

编辑:
正如评论和this post中所述,需要以下代码才能使PHP和AngularJS一起播放:

$postdata = file_get_contents("php://input");
$request = json_decode($postdata);