在dstore / Rest请求中添加查询参数

时间:2018-04-25 13:17:36

标签: javascript dojo dstore

我有一个像这样的dstore / Rest实例:

'/rest/entries/100500?token=some_token'

我需要为每个PUT / POST请求添加一个令牌作为查询参数,因此我的PUT / POST请求的url应如下所示:

entries.add({id: 100500, value: 'someValue'})

在dstore / Rest中是否有任何方便的方法来执行此操作?或者可以在每个请求之前设置标头并在其中放置令牌。无论如何,我的问题是在我打电话时建立正确的请求

entries.add(entry, {
            headers: {
                Token: token
            }
        })

更新

我发现,Rest.add接受两个参数 - 对象和选项,并设法在标题中添加标记:

data.table

但我仍然对查询参数感到好奇。

2 个答案:

答案 0 :(得分:1)

我认为通过创建自定义this.state类来继承dstore / Rest,构造函数中的添加标题将帮助您在constrictor中传递令牌,然后每次都不使用标题执行操作。

你的新课应该是这样的:

MyRest.js

答案 1 :(得分:1)

我设法为我找到了以下解决方案:

lang.extend(Rest, {
    setToken: function(token) {
        this.token = token

        aspect.after(this, '_getTarget', function(target) {
            if (this.token) {
                target += '?token=' + this.token
                this.token = undefined
            }
            return target
        })


        aspect.before(this, 'add', function() {
            if (this.token) {
                this.target += '?token=' + this.token
                this.token = undefined
            }
        })

        return this
    }
})

我这样使用它:

entries.setToken(token).add(data)

但我不确定这是完成任务的好方法。