Ajax 带有JsonRest存储(dojo)的自定义http头

Ajax 带有JsonRest存储(dojo)的自定义http头,ajax,json,dojo,http-headers,store,Ajax,Json,Dojo,Http Headers,Store,我想知道是否有任何方法可以在Get ajax请求(xhr.Get)中设置我自己的自定义http头,该请求自动执行JsonRest存储 有一个相关的话题,但没有很好的解决方案: 我已经在“dojo.store.JsonRest”中看到了JsonRest实现,包括构造函数,我们是否能够实现它并不明显(但我不这么认为)。正在使用的JsonRest存储示例: var store = new JsonRestStore({target: "/Table/" }); 我将完成它的子类化dojo.stor

我想知道是否有任何方法可以在Get ajax请求(xhr.Get)中设置我自己的自定义http头,该请求自动执行JsonRest存储

有一个相关的话题,但没有很好的解决方案:

我已经在“dojo.store.JsonRest”中看到了JsonRest实现,包括构造函数,我们是否能够实现它并不明显(但我不这么认为)。正在使用的JsonRest存储示例:

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

我将完成它的子类化
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
(即headers)现在也将包含
this.defaultGetHeaders
的属性

B.在构造函数中定义
defaultGetHeaders

var myJsonRest = MyJsonRest({
    target: "/echo/json/",
    defaultGetHeaders: {
        userId: "xyz",
        requestedBy: "abc",
        requestedFrom: "123"            
    }        
});
C.调用
myJsonRest.get()
method您还可以覆盖默认头:

myJsonRest.get("someId", { requestedFrom: "321"}).then(function(result) {
    console.log(result);        
});
D.检查请求头:

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