AngularJS$http调用未输出Array



试图通过AngularJS$http调用获取关联数组,但我得到的不是实际的数组,而是字符串"array"。

这是我的$http电话:

$http({
            method : 'POST', 
            url : '[myPHPfile].php', 
            data : 'data=' + $scope.placementID,
            headers : { 'Content-Type' : 'application/x-www-form-urlencoded' }
        }).success(function(data) {
            alert(data);
        });

这是[myPHPfile].php(省略了其他行):

echo someFunctionInAnotherFile($_POST['data']);

我知道我正在获取数组,因为在[myPHPfile].php中执行echo var_dump(数组),在$http调用的成功部分执行alert(数据),我得到:

array(8) { 
   ["id"]=> string(1) "2" 
   ["id_key"]=>
   string(1) "2"
   ...
}

但是,如果没有var_dump,并且我在成功的情况下发出警报(data["id"]),什么都不会发生。在进行警报(data[1])时,我得到了"r",所以不确定为什么返回的数据会变成一个名为"Array"的字符串。

我曾在[myPHPfile].php中尝试过echo-json_encode(…)和alert(json.parse(data)),但都没有成功。

只是试图访问一个简单的数组,但需要帮助。:(

这里有几个问题。

PHP中的json_encode()应该可以工作,但要确保标头设置正确。

<?php 
   header('Content-type: application/json'); 
   echo json_encode(someFunctionInAnotherFile($_POST['data']));
?>

第二个问题是,如果一个PHP"数组"是一个"关联"数组,那么json_encode将把它变成一个对象,否则就是一个正则数组。

最后,显示原始帖子数据是非常危险的,你不应该这样做

最新更新