Emi*_*lio 4 ajax dojo json store http-headers
我想知道是否有任何方法可以在Get ajax请求(xhr.get)中设置我自己的自定义http标头,该请求会自动执行JsonRest存储.
有一个相关的主题,但没有一个很好的解决方案: 带有自定义HTTP标头的Dojo数据网格
我已经在'dojo.store.JsonRest'中看到了包含构造函数的JsonRest实现,如果我们能够做到或不做(我不这么认为),这一点并不明显.正在使用的JsonRest存储示例:
var store = new JsonRestStore({target: "/Table/" });
Run Code Online (Sandbox Code Playgroud)
我会完成它的子类化dojo.store.JsonRest,你可以在这个jsFiddle中看到.
A.子类dojo.store.JsonRest:
var MyJsonRest = declare(JsonRest, {
get: function(id, options) {
return this.inherited(
arguments,
[id, lang.mixin(this.defaultGetHeaders, options)]
);
}
});
Run Code Online (Sandbox Code Playgroud)
所以你重写get方法调用超类' get,但第二个参数options(即.头)现在也包含来自的属性this.defaultGetHeaders.
B. defaultGetHeaders在构造函数中定义:
var myJsonRest = MyJsonRest({
target: "/echo/json/",
defaultGetHeaders: {
userId: "xyz",
requestedBy: "abc",
requestedFrom: "123"
}
});
Run Code Online (Sandbox Code Playgroud)
C.调用myJsonRest.get()方法您也可以覆盖默认标题:
myJsonRest.get("someId", { requestedFrom: "321"}).then(function(result) {
console.log(result);
});
Run Code Online (Sandbox Code Playgroud)
D.检查请求标头:

| 归档时间: |
|
| 查看次数: |
1622 次 |
| 最近记录: |