2014-01-09 118 views
4

根據http://docs.angularjs.org/api/ng.$http攔截器有以下方法:用例爲requestError HTTP攔截

request: function(config) { 
    //we could manipulate query here 
    return config || $q.when(config); 
}, 
requestError: function(rejection) { 
    // what is the use case of this? 
    return $q.reject(rejection); 
}, 
response: function(response) { 
    // response.status === 200 
    return response || $q.when(response); 
}, 
responseError: function(rejection) { 
    // when response failed ... 
    return $q.reject(rejection); 
} 

如何requestError觸發,哪些使用案例,你能想到的?

+0

在嘗試發送請求失敗後,如何顯示連接錯誤消息? –

+1

@AndreyShustariov hm當$ http無法連接資源,因爲資源處於脫機狀態時,會觸發responseError –

+0

好的。然後格式不正確的請求。例如,忘了設置url屬性。 –

回答

3

一個有趣的用例是拆除/撤消在請求之前設置的東西,並且在響應之後將被撕掉。例子:

  • 負載指示
  • 覆蓋
  • 禁用表單字段

現在,當請求不能被髮送或者被另一攔截拒絕,requestError使您能夠採取適當行動的機會並刪除該加載指示器或啓用表單域。