Javascript HTTP响应对象中缺少数据字段。我如何访问它?

Javascript HTTP响应对象中缺少数据字段。我如何访问它?,javascript,http,model-view-controller,service,undefined,Javascript,Http,Model View Controller,Service,Undefined,我想通过使用访问订单数据 $scope.hero.order=response.data 但它给出了一个未定义的错误,当我检查响应对象时,没有通常显示的数据字段,有人能突出我的错误吗 OrderService.js angular.module('Orders') .service('OrderService', ['$http', '$state', '$resource', '$q', 'SettingService', '$localStorage', "MessageServi

我想通过使用访问订单数据

$scope.hero.order=response.data

但它给出了一个未定义的错误,当我检查响应对象时,没有通常显示的
数据
字段,有人能突出我的错误吗

OrderService.js

angular.module('Orders')
    .service('OrderService', ['$http', '$state', '$resource', '$q', 'SettingService', '$localStorage', "MessageService",
     function($http, $state, $resource, $q, SettingService, $localStorage, MessageService) {
        var orderResource = $resource(SettingService.baseUrl + "api/orders/:id", {id:'@id'}, {'query':{method:'GET', isArray:false}, 'update':{method:'PATCH'}});
        var service = {
getOrder : function(OrderId, successCallback, failureCallback){
                orderResource.query({id:OrderId}, successCallback, failureCallback);
         }
        }
        return service;
    }]);
您会得到“error of undefined”,因为
orderResource.query()
的成功回调的第一个参数是响应主体(在您的例子中是order对象),而不是响应对象。因此,您的成功回调函数应该如下所示:

function(order, getResponseHeaders, status, statusText) {
  $scope.hero.order = order;
  ...
}
您可以参考
$resource

使用(value(Object | Array)、responseHeaders(Function)、status(number)、statusText(string))参数调用成功回调

您现在所做的(尝试从
response.data
获取订单对象)是
$http
()-
$http
的成功回调将接收一个
response
对象,其
数据
字段引用http响应主体。但是,
$resource
则不同——正文、标题、状态等都是按顺序作为参数传递的

看起来AngularJS应该调整行为,但不幸的是它没有