首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在dstore/Rest请求中添加查询参数

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

Stack Overflow用户
提问于 2018-04-25 13:17:35
回答 2查看 131关注 0票数 2

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

代码语言:javascript
复制
const entries = new Rest({ target: '/rest/entries' })

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

代码语言:javascript
复制
'/rest/entries/100500?token=some_token'

在dstore/Rest中有什么简便的方法可以这样做吗?或者在每个请求之前设置标头,并将令牌放在那里。不管怎么说,我的问题是当我打电话时,要建立正确的请求。

代码语言:javascript
复制
entries.add({id: 100500, value: 'someValue'})

更新:

我发现,Rest.add接受两个参数-- object和options,并设法在标头中添加令牌:

代码语言:javascript
复制
entries.add(entry, {
            headers: {
                Token: token
            }
        })

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-28 11:19:11

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

代码语言:javascript
复制
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
    }
})

我就是这样用的:

代码语言:javascript
复制
entries.setToken(token).add(data)

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

票数 1
EN

Stack Overflow用户

发布于 2018-04-27 21:50:22

我认为,通过创建自定义的MyRest.js类,在构造函数中添加一个标头可以帮助您在压缩器中传递令牌,然后,在每次不使用标头的情况下执行操作。

你的新课看起来应该是:

代码语言:javascript
复制
define([
    'dojo/_base/declare',
    'dstore/Rest',
    'dojo/_base/lang',
], function (declare, Rest) {

    return declare(Rest, {
 //                  ^
 //                  |
 // inheritence -----
        constructor: function(headers) {  // headers object : {Token: token};
            this.inherited(arguments); // like super() in poo
            this.headers = this.headers || {};
            lang.mixin(this.headers, headers || {});
        }
    });
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50023425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档