2012-03-23 12 views
4

JsonRestストアを自動的に実行するGet ajaxリクエスト(xhr.get)に独自のカスタムhttpヘッダーを設定する方法があるのだろうかと思っていました。JsonRest Store(dojo)のカスタムhttpヘッダー

あり関連の話題だが、偉大な解決策なし: Dojo Data grid with custom HTTP headers

私は、コンストラクタを含む「dojo.store.JsonRest」にJsonRestの実装を見てきましたし、我々はそれを行うか、できない場合、それは明らかではありません(しかし私はそうは思わない)。使用中のJsonRestストアの例:

var store = new JsonRestStore({target: "/Table/" }); 

答えて

7

あなたがthis jsFiddleで見ることができるように、私はdojo.store.JsonRestをサブクラス化、それを達成するでしょう。

A.サブクラスdojo.store.JsonRest

var MyJsonRest = declare(JsonRest, { 

    get: function(id, options) { 
     return this.inherited(
      arguments, 
      [id, lang.mixin(this.defaultGetHeaders, options)] 
     ); 
    } 
}); 

だから、スーパークラスのgetを呼び出すget方法はオーバーライドしますが、第二引数options(すなわちヘッダが。)今this.defaultGetHeadersからもプロパティが含まれています。

B.は、コンストラクタでdefaultGetHeadersを定義します。

myJsonRest.get("someId", { requestedFrom: "321"}).then(function(result) { 
    console.log(result);   
}); 

D.チェックリクエストヘッダ:

enter image description here

あなたはまた、デフォルトのヘッダを上書きすることができ myJsonRest.get()メソッドを呼び出す

var myJsonRest = MyJsonRest({ 
    target: "/echo/json/", 
    defaultGetHeaders: { 
     userId: "xyz", 
     requestedBy: "abc", 
     requestedFrom: "123"    
    }   
}); 

C.

関連する問題