如何解决在插件请求中收到403禁止错误
我正在尝试从我的ICN插件中触发插件请求。请求如下。但是,我从服务器收到403禁止错误。
禁止 您无权访问此服务器上的/ navigator / jaxrs / plugin。
https://<icnserver.com>/navigator/jaxrs/plugin?repositoryId=Demo&query=%5B%7B%22name%22%3A%22ID%22%2C%22operator%22%3A%22LIKE%22%2C%22values%22%3A%5B%22123434234%22%2C%22%22%5D%7D%5D&className=Checks&plugin=DemoPlugin&action=DemoService&desktop=Demo
插件JS:
aspect.around(ecm.model.SearchTemplate.prototype,"_searchCompleted",function advisingFunction(original_searchCompleted){
return function(response,callback,teamspace){
var args = [];
var templateName = response.templates[0].template_name;
var res = response;
var requestParams = {};
requestParams.repositoryId = this.repository.id;
requestParams.query = query;
requestParams.className = templateName;
Request.invokePluginService("DemoPlugin","DemoService",{
requestParams: requestParams,requestCompleteCallback: lang.hitch(this,function(resp) { // success
res.rows = resp.rows;
res.num_results = resp.rows.length;
res.totalCount = resp.rows.length;
args.push(res);
args.push(callback);
args.push(teamspace);
original_searchCompleted.apply(this,args);
})
}
);
}
});
解决方法
您需要提供一个security_token才能调用您的服务,因此您需要先登录。 然后,打开浏览器的调试,并在“网络”标签中检查请求。 在那里,您可以看到针对/ navigator / jaxrs / * URI的每个请求都将包含该请求,因此在标头中将包含以下内容:
security_token:163594541620199174
所以我敢打赌,您尚未在客户端中进行设置(我建议邮递员测试您的服务,否则我会在ICN插件项目中添加一个测试(ICN)功能页面,以便能够对其进行调用正确地)。在功能页面中,您可以使用ecm / model / Request OOTB导航器dojo / javascript类直接调用服务,如CheckinAction.js所示:
_checkInDocument: function (item,requestData)
{
var self = this;
var payLoadObject = {requestType: "Get",id: item.id};
Request.postPluginService("DocuSignPlugin","UpdateSignedDocumentService","application/json",{
requestParams: {
repositoryId : item.repository.id,serverType : item.repository.type,docId : item.docid,envelopeId: item.attributes.DSEnvelopeID,payLoad: json.stringify(payLoadObject)
},requestCompleteCallback: function(response) {
if (response.returncode == 0)
{
item.attributeDisplayValues.DSSignatureStatus = "Checkedin";
item.attributes.DSSignatureStatus = 4;
item.update(item);
}
else if (response.returncode == -1)
{
items = [];
items.push(item);
self._showLoginDialog(items);
}
},backgroundRequest : false,requestFailedCallback: function(errorResponse) {
// ignore handline failures
}
});
},
如您所见,您不必将security_token添加到requestParams中,框架将为您完成。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。