簡體   English   中英

在angularjs的任何地方捕獲錯誤

[英]Catch an error anywhere angularjs

我正在開發一個經常與服務器通信的Angularjs應用程序。 我以前從未有過實施安全性的任務。

這意味着,當用戶嘗試執行不允許執行的操作時,我已經更改了所有服務器端api調用,以返回403未經授權的http狀態代碼。

現在,我可以查找該應用程序對服務器進行的每個API調用,並調用一個函數,每個函數以相同的方式處理相同的錯誤。 但是,我寧願找到某種方式說“只要該頁面收到403未經授權的回復,就執行此功能”。 我要問的可能嗎?

您可以使用$http攔截器。 通過添加攔截器,您將能夠攔截響應以檢查狀態代碼,並在通知原始要求之前做您想做的任何事情。

AngularJS $ http文檔

例如:

app.config(function ($httpProvider) {
  // it can be added by a explicit factory declaration
  // angular.module(...).factory('myHttpInterceptor', function ...
  $httpProvider.interceptors.push(function($q, $state) {
    return {
      'request': function(config) {
        return config;
      },

      'response': function(response) {
        if(response.statusCode === 403){
          $state.go('my.unauthorized.state');
          // or maybe 
          // $rootScope.$broadcast('unauthorized');
        }
        return response;
      }
    };
  });
});

暫無
暫無

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

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