2017-03-03 30 views
0

我嘗試了很多aproaches的,其中的一些:如何獲得角度1.5.6的響應狀態碼?

$http({ 
     method: 'GET', 
     url: '/Url'}).then(function successCallback(response) { 
     }, function errorCallback(response) { 
     }); 

    var req = { 
     method: 'GET', 
     interceptor: { 
      response: function (response) { 
       console.log(response) 
       var result = response.resource; 
       result.$status = response.status; 
       return result; 
      } 
     }, 
     url: url, 
     headers: { 
      'Authorization': token 
     } 
    } 

    $http(req).success(function (data, status, headers, config) { 
     console.log(data, status, headers, config); 
    }).error(function (data, status, headers, config) { 
     console.log(data, status, headers, config); 
    }); 

和很多其他的沒有結果,所以我真的需要幫助! 我會很感激任何幫助

+0

您需要設置攔截器的配置方法。請參閱https://docs.angularjs.org/api/ng/service/$http –

+0

您可以添加重要的示例嗎?因爲我試圖做到這一點沒有結果 – nightmare

+0

如果提供的'url'無效,那麼你的'response'函數將永遠不會被調用,所以你永遠不會看到'console.log(...)'寫成你的「響應」功能。 – Gaurav

回答

0

第一種方法看起來接近你所需要的。

function successCallback(response) { 
    console.log('status code: ', response.status); 
} 

當前回調是空的,所以我們正在訪問響應對象和日誌狀態代碼。

+0

它不起作用 – nightmare

+0

您必須在您的示例中使用正確的URL。什麼是您使用的URL? –

0

第一種方法是更直接的做法,但我敢肯定,響應函數應該是匿名的。把console.log()放在兩個都會有幫助。

$http({ 
    method: 'GET', 
    url: '/Url' 
    }).then(function(response) { 
     console.log(response.status); 
    }, function(response) { 
     console.log(response.status); 
    }); 

如果這不起作用,只需在兩者中放置console.log(response)即可看到它是什麼。

+0

這也不起作用 – nightmare

+0

當你這樣做時,console.log的輸出是什麼?郵差(https://www.getpostman.com/)也是一個用於調試http請求的有用工具。如果您請求或端點設置不正確,那麼這可能是您無法獲得狀態代碼的原因。 – Rozgony

0

您可以使用httpinterceptor如果你想跟蹤您的所有要求:

myModule.factory('myHttpInterceptor', function ($q) { 

    return { 
     response: function (response) { 
      // do something with success response 
      // status in response.status 
      return response; 
     }, 
     responseError: function (response) { 
      // do something with error response 
      // status in response.status 
      return $q.reject(response); 
     } 
    }; 

}); 

myModule.config(function ($httpProvider) { 
    $httpProvider.interceptors.push('myHttpInterceptor'); 
});