使用JsonRest Store(dojo)自定义http标头

时间:2012-03-23 10:04:05

标签: ajax json dojo http-headers store

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

有一个相关主题,但没有一个很好的解决方案: Dojo Data grid with custom HTTP headers

我已经在'dojo.store.JsonRest'中看到了包含构造函数的JsonRest实现,如果我们能够做到这一点并不明显(但我不这么认为)。正在使用的JsonRest存储示例:

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

1 个答案:

答案 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。检查请求标头:

enter image description here