2017-04-11 3 views
0

Dojo v1.6.0。 dojo.rpc.JsonService()のすべてのインスタンスを呼び出すたびにカスタムヘッダ(私の場合はcsrf保護)を設定する方法はありますか?Dojo rpc.JsonService - カスタム・ヘッダーを設定します。

少なくとも、dojo.rpc.JsonService()の特定のインスタンスの呼び出しごとに?

問題はバックエンドのSpring 4 csrf保護で、特定のヘッダーを必要とせずすべてをフィルタリングし、HTTP 403 Forbiddenステータスを返します。

var token = $("meta[name='_csrf']").attr("content"); 
var header = $("meta[name='_csrf_header']").attr("content"); 
$(document).ajaxSend(function (e, xhr, options) { 
    xhr.setRequestHeader(header, token); 
}); 

何かを作るために完璧になる:のように見えることにすべてのAJAX要求とセットヘッダを処理するjQueryのコードのために例えば

... 
dojo.require("dojo.rpc.RpcService"); 
dojo.require("dojo.rpc.JsonService"); 
var myService = new dojo.rpc.JsonService("someMyService"); 
var result = myService.myRemoteMethod(param1, param2, ...); 
... 

:今、私のコードは次のように見えるため

道場のように。

答えて

0

は私が道場1.6のための任意の解決策を見つけましたが、だから私の最終的な解決策があるhere

を説明したように、私は純粋なJavaScriptですべてのAJAXリクエストを処理してこの問題を解決できることを発見していない:

(function(send) { 
    var token = $("meta[name='_csrf']").attr("content"); 
    var header = $("meta[name='_csrf_header']").attr("content"); 
    XMLHttpRequest.prototype.send = function(data) { 
     if (isNotBlank(token) && isNotBlank(header)) { 
      this.setRequestHeader(header, token); 
     } 
     send.call(this, data); 
    }; 

})(XMLHttpRequest.prototype.send); 
関連する問題