我想知道是否有任何方法可以在Get ajax请求(xhr.get)中设置我自己的自定义http标头,该请求会自动执行JsonRest存储。
有一个相关主题,但没有一个很好的解决方案: Dojo Data grid with custom HTTP headers
我已经在'dojo.store.JsonRest'中看到了包含构造函数的JsonRest实现,如果我们能够做到这一点并不明显(但我不这么认为)。正在使用的JsonRest存储示例:
var store = new JsonRestStore({target: "/Table/" });
答案 0 :(得分:7)
我会完成它dojo.store.JsonRest
的子类化,如this jsFiddle所示。
一个。子类dojo.store.JsonRest
:
var MyJsonRest = declare(JsonRest, {
get: function(id, options) {
return this.inherited(
arguments,
[id, lang.mixin(this.defaultGetHeaders, options)]
);
}
});
所以你覆盖调用超类'get
的{{1}}方法,但第二个参数get
(即标题)现在也包含来自options
的属性。
B中。在构造函数中定义this.defaultGetHeaders
:
defaultGetHeaders
℃。调用var myJsonRest = MyJsonRest({
target: "/echo/json/",
defaultGetHeaders: {
userId: "xyz",
requestedBy: "abc",
requestedFrom: "123"
}
});
方法也可以覆盖默认标题:
myJsonRest.get()
d。检查请求标头: