大佬教程收集整理的这篇文章主要介绍了AngularJS - $http GET 响应总是 [object Object],大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我只是想从 php 获取一组键值对并将响应发送回 AngularJs $http GET 请求:@H_673_3@
php 代码 get_projects.php 文件:@H_673_3@
<?php header('Content-Type: application/Json'); $data = [{"ID" => 1,"name" => 'Audi'},{"ID" => 2,"name" => 'BMW'},{"ID" => 3,"name" => 'Honda'}]; $encode = Json_encode($data); echo $encode; ?>
@H_618_9@app.controller('MainController',['$scope','$http',function ($scope,$http) { $scope.name = 'Search'; $scope.projects = ''; $http({ method: 'GET',url: 'includes/get_projects.php',params: {} }).then(function success(responsE) { $scope.projects = response.data; alert($scope.projects); }); }]);
@H_618_9@
alert($scope.projects);
总是返回[object Object]
。echo gettype($encodE);
打印String
,但 alert 语句打印[object Object]
。我试过angular.fromJson()
但它仍然打印[object Object]
。@H_673_3@我真的对 php 中 json_encode() 函数的概念感到困惑。请帮我解决问题。@H_673_3@
解决方法
您通过使用 JSON 序列化 php 数组将其转换为字符串。
$encode
因此是一个字符串,这很好。@H_673_3@您的前端现在获得响应,并且(因为它带有
application/json
的内容类型)已经为您将其从 JSON 字符串反序列化为 JavaScript 对象。@H_673_3@尝试将对象转换为字符串会得到类似
[object Object]
的结果。alert
在这里不是合适的工具,因为它只能处理字符串。@H_673_3@改为尝试
console.log
并检查您的 devtools 控制台输出,您会在那里看到一个可探索的对象。 (更好的是:在您的 devtools 调试器中,在成功处理程序中设置断点并在该点检查对象。)@H_673_3@底线:一切正常,只是您没有使用正确的方法来查看您的对象。@H_673_3@ ,
@CherryDT 我想我解决了这个问题。@H_673_3@
git rev-list
@H_618_9@
- php 将数组作为带有 json_encode 的字符串发送。
- AngularJS response.data 将响应作为对象。
- 遍历 response.data 对象并将键/值推送到变量 make。
- 用
var make = []; for (var key in response.data) { if(response.data.hasOwnProperty(key)){ make.push({ "id": response.data[key].id,"name": response.data[key].name }); } } $scope.projects = JSON.Stringify(makE); $scope.projects = angular.fromJson($scope.projects);
创建一个字符串。- 使用
JSON.Stringify
将 JSON 字符串转换为对象。我看过几篇博客,它们将
angular.fromJson
对象直接分配给 $scope 变量,但在我的情况下它不起作用。@H_673_3@我使用的 AngularJS 版本是:AngularJS v1.2.8@H_673_3@
大佬总结
以上是大佬教程为你收集整理的AngularJS - $http GET 响应总是 [object Object]全部内容,希望文章能够帮你解决AngularJS - $http GET 响应总是 [object Object]所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。