簡體   English   中英

HTTP響應對象中缺少數據字段。 我該如何訪問?

[英]Data field is missing from HTTP response object. How can I access it?

我想通過使用訪問訂單數據

$scope.hero.order = response.data;

但是它給出了一個不確定的錯誤,當我檢查響應對象時,沒有通常出現的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;
    }]);

您會收到“不確定的錯誤”,因為orderResource.query()的成功回調的第一個參數是響應正文(您的情況下為order對象),而不是響應對象。 因此,您的成功回調函數應如下所示:

function(order, getResponseHeaders, status, statusText) {
  $scope.hero.order = order;
  ...
}

您可以參考$resource文檔

成功回調使用(value(Object | Array),responseHeaders(Function),status(number),statusText(string))參數調用

現在要做的(嘗試從response.data獲取訂單對象)是$httpdoc )的行為- $http的成功回調將接收一個response對象,其data字段引用http響應正文。 但是,對於$resource來說是不同的-正文,標頭,狀態等均按順序作為參數傳遞。

看來AngularJS應該使行為一致,但不幸的是,事實並非如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM