AngularJsでグローバルHTTPタイムアウトを設定する方法 質問する

AngularJsでグローバルHTTPタイムアウトを設定する方法 質問する

毎回タイムアウトを設定できることはわかっています。

$http.get('path/to/service', {timeout: 5000});

...しかし、コードを DRY に保つためにグローバル タイムアウトを設定したいと考えています。

ベストアンサー1

これは、最先端の angular.js で可能です (git master 4ae46814ff でテスト済み)。

リクエスト HTTP インターセプターを使用できます。次のようになります。

 angular.module('yourapp')
  .factory('timeoutHttpIntercept', function ($rootScope, $q) {
    return {
      'request': function(config) {
        config.timeout = 10000;
        return config;
      }
    };
 });

そして、.config に $httpProvider を挿入して、次のようにします。

$httpProvider.interceptors.push('timeoutHttpIntercept');

おすすめ記事