2016-07-18 10 views
0

私はangularjsコードで約70個を持っています。約65人がauthtoken変数を送信します。

$http.post("/url", { name: $scope.name, authtoken:localStorage['authtoken']}); 

私はどこか、それはすべて私の$http.post呼び出しによってデフォルトとして持つAuthToken渡すので、私はすべての時間でそれを入力する必要はありませんので、それを作ることが有益であるかもしれないことを見て覚えています。

これは良い考えですか?もしそうなら、私はそれをどのように達成するか誰にも分かりますか?ちょうどいくつかの洞察力を探し、正しい方向に押し込むこと。

+0

* "angular httpInterceptor" *を検索してください。最初のリンクはおそらく$ httpドキュメントとなるでしょうし、チュートリアルがたくさんあります – charlietfl

+0

あなたの質問は、[help/on-topic]に基づいて具体的に話題にならない意見を求める人に限定してください。 –

+0

意見を別にすれば、誰かが持っているコードの量を制限することに関してベストプラクティスを学ぶ良い機会のように感じる検索@MikeMcCaughanでそれを見つけることができなかったので、多くの人々を助けるかなり面白い質問です書く。しかし、確かに私はあなたの洞察力に感謝する次回私の質問を制限します#SOreadytohelp – bryan

答えて

1

あなたはこのようInterceptorsを使用することができます。

angular.module('app').config(function($httpProvider) { 
    $httpProvider.interceptors.push(function() { 
    return { 
     request: function(req) { 
     if(req.method.toUpperCase() === 'POST') { 
      if(typeof req.data === 'object') { 
       req.data = req.data || {};// typeof Null is 'object' since the beginning of JavaScript 
       req.data['authtoken'] = localStorage['authtoken']; 
      } else { 
       req.data += '&authtoken='+localStorage['authtoken'] 
      } 
     } 
     return req; 
     } 
    }; 
    } 
}); 

私は、これはあなたを助けることを願っています。

0

jQuery.ajaxSetup()
の使用を考えてみましょうここでは、AJAXグローバルハンドラajaxStarhttps://api.jquery.com/ajaxStart/

を設定し、あなたの持つAuthTokenを追加することによって、渡されたデータを変更することができるAPI https://api.jquery.com/jQuery.ajaxSetup/
です。
ここはいい記事です。http://weblogs.asp.net/hajan/simplify-your-ajax-code-by-using-jquery-global-ajax-handlers-and-ajaxsetup-low-level-interface

+0

ありがとうヤンが、私は角を使用していないとjqueryを使用しています – bryan

関連する問題