2016-11-15 40 views
1

有沒有什麼辦法可以創建一個HTTP攔截器與Angular 2將允許您重定向到某些路線取決於錯誤?例如,當服務以404響應時,轉到/未找到的路線,當以401/403響應時,轉到/未授權路線。錯誤的HTTP服務重定向

我已經嘗試到路由器注入我的服務和使用上的錯誤處理方法,但它只是拋出這個錯誤

Unhandled Promise rejection: Provider parse errors: Cannot instantiate cyclic dependency!

我以前能夠與像AngularJS做所以:

function authInterceptor ($q, $injector) { 
    return { 
    request: function (request) { 
     return request; 
    }, 
    requestError: function (request) { 
     return $q.reject(request); 
    }, 
    response: function (response) { 
     return response; 
    }, 
    responseError: function (response) { 
     if (response.status === 401 || response.status === 403) { 
     $injector.get('$state').go('unauthorised'); 
     } else if (response.status === 404) { 
     $injector.get('$state').go('notFound'); 
     } 

     return $q.reject(response); 
    } 
    }; 
} 

回答

1

您可以擴展HTTP模塊並攔截請求和響應。 我寫了一個gist來演示它。

相關問題