【问题标题】:Passing Request Headers from oj.Collection or oj.Model从 oj.Collection 或 oj.Model 传递请求标头
【发布时间】:2019-10-10 02:00:58
【问题描述】:

请告诉我如何在从 oj.Collection API 调用 REST 端点时传递标头(如授权等)来帮助我

https://learncodeshare.net/2017/03/29/making-a-rest-call-from-oracle-jet/

我尝试了上述链接中的“customURL”,但无法获取标题

【问题讨论】:

    标签: oracle-jet


    【解决方案1】:

    文档中没有明确提及,但您可以在调用 collection.fetch() 方法时将标头添加为对象输入属性之一。

    例如:

    self.model = oj.Model.extend({
            url: someURL,
            idAttribute: 'id'
    });
    var myModel = new self.model();
    var collection = oj.Collection.extend({
            url: someURL,
            model: myModel
    });
    self.myCollection = new collection();
    
    return new Promise(function (resolve, reject) {
        self.myCollection.fetch({
            headers: headers,
            success: function (collection, response, options) {
                resolve(response);
            }
        });
    };
    

    【讨论】:

    • 谢谢雷。会试试这个
    • 嗨 Ray 什么是“标题”类型。我是否将其作为 {"bearer":""} 之类的对象传递
    【解决方案2】:

    customURL 是发送您的授权标头的正确位置。根据文档,它返回一个具有多个参数的对象。第一个参数是 REST URL,第二个参数是操作类型(GET、POST 等 - 是的 JET 也支持 POST),您可以添加其他参数以传递给您的 REST 调用。下面是一个例子:

    returnCollection.customURL = function(operation, collection, options) {
        const requestBody = { param: 'somevalue' };
        return {
          url: 'http://localhost:3000/api/customsearch',
          type: 'POST',
          contentType: 'application/json',
          beforeSend: function(xhr) {
            xhr.setRequestHeader('Authorization', 'Basic ...something...');
          },
          data: JSON.stringify(requestBody)
        };
    };
    

    【讨论】:

    • 嗨,returnCollection 是什么
    • returnCollection 是您的 oj.Collection 的一个实例。 const mycollection = oj.Collection.extend({ ..., model: self.getModel() }); const returnCollection = new mycollection();
    猜你喜欢
    • 2020-07-09
    • 2017-11-20
    • 2016-04-21
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 2021-12-18
    相关资源
    最近更新 更多