程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了AngularJS - $http GET 响应总是 [object Object]大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决AngularJS - $http GET 响应总是 [object Object]?

开发过程中遇到AngularJS - $http GET 响应总是 [object Object]的问题如何解决?下面主要结合日常开发的经验,给出你关于AngularJS - $http GET 响应总是 [object Object]的解决方法建议,希望对你解决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@

AngularJs 控制器代码:@H_673_3@

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@
  1. php 将数组作为带有 json_encode 的字符串发送。
  2. AngularJS response.data 将响应作为对象。
  3. 遍历 response.data 对象并将键/值推送到变量 make。
  4. 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); 创建一个字符串。
  5. 使用 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,请注明来意。