[英]How to properly handle server side errors?
我正在使用angular.js開發web應用程序,我目前對處理錯誤的正確方法感到困惑。 在我的應用程序中,我使用ngResource來調用服務器的rest API。 所以我會有很多ngResource api調用。
例如用戶資源,有user.query(),user.get(),user.save()......我想把錯誤回調放到所有ngResource api調用中嗎? 只是為了處理各種錯誤:如服務器關閉或無法訪問互聯網?
我只是不認為在每個ngResource api調用中放置一個錯誤回調是個好主意。 這將產生大量冗余代碼並使我的代碼不整齊。
您將如何處理各種錯誤類型?
您可以使用攔截器並在發生錯誤時執行任何操作:
var app = angular.module("myApp", []);
app.config(function ($provide, $httpProvider) {
$provide.factory('ErrorInterceptor', function ($q) {
return {
responseError: function(rejection) {
console.log(rejection);
return $q.reject(rejection);
}
};
});
$httpProvider.interceptors.push('ErrorInterceptor');
});
使用此攔截器,您可以讀取狀態代碼並執行您需要的操作(如果狀態代碼為401,則完美的用例是將用戶重定向到登錄頁面)。
由於ngResource使用$ http,因此在調用資源方法時也會執行攔截器。
當然,您可以執行更多操作並在發出請求之前/之后添加攔截器。
請參閱此處的完整文檔: http : //docs.angularjs.org/api/ng.$http
看到這個小提琴: http : //jsfiddle.net/4Buyn/為一個工作樣本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.