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应该调整行为,但不幸的是它没有