0

尝试通过 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(theArray) 并在 $http 调用的成功部分执行 alert(data) ,我得到:

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

但是没有 var_dump,我在成功的情况下做了一个 alert(data["id"]) ,什么也没有发生。并做一个警报(数据[1])我得到“r”,所以不知道为什么返回的数据变成了一个名为“Array”的字符串。

我已经尝试 echo json_encode(...) in[myPHPfile].php 和 alert(JSON.parse(data)) 成功,但这也不起作用。

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

4

1 回答 1

0

这里有几个问题。

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

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

第二个问题是,如果数组是“关联”数组,则 json_encode 会将 PHP“数组”转换为对象,否则将其转换为常规数组。

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

于 2013-07-17T22:04:06.730 回答