2012-11-28 9 views
5

breezeに依頼する前にヘッダーを設定するにはどうすればよいですか?BreezeでAJAXヘッダーを設定する

例:私のサービスでは、特定の鍵が の要求の一部であると見なして、ヘッダー名 'x-service-key'を要求します。今まで、jquery ajaxと を使っていたので、ヘッダを設定するのはかなり簡単です。 breezeが作成しているリクエストに対して、私は のコントロールを持っていないので、どうすれば のようなものをヘッダのように渡すことができますか?

この質問は、私たちのIdeaBladeフォーラムでsujesharukilによって投稿されました。私はBreeze Stack Overflowコミュニティに役立つと思うので、ここで質問と回答を再投稿しています。

答えて

7

Breeze 0.70.1から、サーバー上のbreezeクライアントとWebサービス間のAjax通信を完全にカスタマイズまたは置き換える機能がサポートされるようになりました。

私たちのAjaxサポートに関するBreezeのドキュメントはまだ進行中ですが、うまくいけば次のようになるでしょう。

Breezeが作成するすべてのAjaxリクエストでヘッダーを制御するには、アプリケーションの最初の起動時に次のコードを実行します。

var ajaxImpl = breeze.config.getAdapterInstance("ajax"); 
ajaxImpl.defaultSettings = { 
     headers: { 
      // any CORS or other headers that you want to specify. 
      "X-Test-Header": "foo2" 
     }, 
}; 

また、個々のAjax呼び出しをインターセプトして、リクエストに基づいて選択的にヘッダーを追加することもできます。

var ajaxImpl = breeze.config.getAdapterInstance("ajax"); 
ajaxImpl.defaultSettings = { 
     beforeSend: function(jqXHR, settings) { 
       // examine the jqXHR or settings and customize the headers accordingly. 
       jqXHR.setRequestHeader("X-Test-Before-Send-Header", "foo2"); 
     } 
}; 
関連する問題