【发布时间】: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
请告诉我如何在从 oj.Collection API 调用 REST 端点时传递标头(如授权等)来帮助我
https://learncodeshare.net/2017/03/29/making-a-rest-call-from-oracle-jet/
我尝试了上述链接中的“customURL”,但无法获取标题
【问题讨论】:
标签: oracle-jet
文档中没有明确提及,但您可以在调用 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);
}
});
};
【讨论】:
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)
};
};
【讨论】: