2016-10-11 15 views
1

私はionicを使用しているアプリを開発中です。ちょうど今日、私の$http要求のすべてが-1ステータスコードを返すことによって失敗し始めました。これは、ionic serveionic run browser、およびionic emulate iosを実行すると発生します。

これらの$httpリクエストは必ずしもリモートである必要はありません。 www/templateのHTMLファイルを読み込めません。デバッグの助けがあれば、大いに感謝します!

さらに詳しく: ionic serveを実行すると、index.htmlがロードされ、app.jsがロードされます。順番にこれは、HTTPのインターセプターを設定し、$stateProviderを使用して状態をロードします。

angular.module('starter', ['ionic', 'ngCordova', 'ionic.service.core', 'starter.controllers', 'setup.controllers', 'settings.controllers', 'history.controllers', 'graph.controller']) 
... 
    .config(function ($stateProvider, $urlRouterProvider, $httpProvider, $analyticsProvider) { 
     ... 
     $httpProvider.interceptors.push(['$q', '$location', function ($q, $location) { 
      return { 
       'request': function (config) { 
        // Setup authorization token... 
        return config; 
       }, 
       'responseError': function (response) { 
        if (response.status === 401 || response.status === 403) { 
         $location.path('/login'); 
        } 
        return $q.reject(response); 
       } 
      }; 
     }]); 
     ... 
      $stateProvider.state('login', { 
      cache: false, 
      url: '/login', 
      templateUrl: 'templates/login.html', 
      controller: 'LoginCtrl' 
     }) 

      // setup an abstract state for the tabs directive 
      .state('tab', { 
       url: '/tab', 
       abstract: true, 
       cache: false, 
       controller: 'TabCtrl', 
       templateUrl: 'templates/tabs.html' 
      }) 
... 

私のブラウザのJavaScriptコンソールは、これらのエラーで満たされている:

ionic.bundle.js:25000 GET http://localhost:8100/templates/tabs.html net::ERR_EMPTY_RESPONSE(anonymous function) @ ionic.bundle.js:25000sendReq @ ionic.bundle.js:24793serverRequest @ ionic.bundle.js:24503processQueue @ ionic.bundle.js:29127(anonymous function) @ ionic.bundle.js:29143$eval @ ionic.bundle.js:30395$digest @ ionic.bundle.js:30211$apply @ ionic.bundle.js:30503(anonymous function) @ ionic.bundle.js:32332completeOutstandingRequest @ ionic.bundle.js:19194(anonymous function) @ ionic.bundle.js:19470 
ionic.bundle.js:25000 GET http://localhost:8100/templates/login.html net::ERR_EMPTY_RESPONSE(anonymous function) @ ionic.bundle.js:25000sendReq @ ionic.bundle.js:24793serverRequest @ ionic.bundle.js:24503processQueue @ ionic.bundle.js:29127(anonymous function) @ ionic.bundle.js:29143$eval @ ionic.bundle.js:30395$digest @ ionic.bundle.js:30211$apply @ ionic.bundle.js:30503(anonymous function) @ ionic.bundle.js:32332completeOutstandingRequest @ ionic.bundle.js:19194(anonymous function) @ ionic.bundle.js:19470 

私が迎撃にブレークポイントをドロップすると、それが傍受しますこれらのローカルHTMLファイルに対する要求を返し、応答ステータスコードを-1として表示します。

更新1: これは見知らぬ人になり続けます...ローカルストレージをクリアすると、一度動作します。ローカルのストレージを使用してログインしているユーザーアカウントを保管しているため、ストレージをクリアして更新すると、ページが正常に読み込まれます。ログインした後、すべてのリクエストが停止します。

+1

私は、ソースコントロールを既知の良いバージョンに戻していたことを言及していましたが、同じ原因でそれでも失敗していました。これは私のソースには必ずしも問題ではないと信じています。 – Pete

+0

私はここで答えを出すことはできないと思います。 -1はリクエストが送信されなかったことを意味します。https://docs.angularjs.org/api/ng/service/$httpを参照してください。私は '要求' inteceptorsと特に 'config'をデバッグするかもしれないと思います。 – estus

+0

@ペテ私はまったく同じ問題を角度で持っています。 すべて同じですが、ローカルストレージをクリーンアップするとすべて正常に動作します。 そして私は前のgitブランチからチェックアウトしようとしました - それは助けになりませんでした。 この奇妙な動作を修正するための解決策はありましたか? –

答えて

1

私はこの問題の調査中に多くの時間を費やし、最後に問題を見つけました。 私のケースでは、私は、ベアラ認可データを各リクエストに追加するインターセプタを持っていますが、このベアラが小さいサイズになるまではすごくうまくいったのですが、設計ミスをして、問題が始まった後に大量のデータを追加しました。 ベアラ要求サイズを最小化した後、すべて期待どおりに動作します。

+0

私は自分の問題をどのように修正したかを覚えておいてほしいですが、数ヶ月前です。ベアラー認可と同様に関係していました。私はあなたの答えをマークします。 – Pete

関連する問題