sap.ui.unified.fileuploader与sap.m.uploadcollection和CSRF令牌

2020-09-22 12:36发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我有一个应用程序,该应用程序最初...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有一个应用程序,该应用程序最初是我们使用uploadcollection控件的地方。 它起作用了,但是,对于我们要完成的任务来说,这太过分了。

我们决定改用fileuploader。 在切换视图上的控件并在控制器中从sap.ui.unified.FileUploaderParameter切换到sap.m.UploadCollectionParameter之后,我们会收到错误消息。

代码似乎可以使令牌成功进入sToken:

但是在控制台中,我们看到以下内容:

进一步查看网关调用,似乎是令牌存在问题:

我们用于为uploadcollection添加参数的代码为:

 onChange:function(oEvent){
 var oModel = this.getView()。getModel();
 oModel.refreshSecurityToken();
 var oHeaders = oModel.oHeaders;
 var sToken = oHeaders ['x-csrf-token'];
 var oUploadCollection = oEvent.getSource();
 var oCustomerHeaderToken = new sap.m.UploadCollectionParameter({
 名称:" x-csrf-token",
 值:sToken
 });
 oUploadCollection.addHeaderParameter(oCustomerHeaderToken);

 MessageToast.show("已触发事件更改");
 },


 onStartUpload:function(oEvent){
 var oUploadCollection = this.getView()。byId(" UploadCollection");
 var oTextArea = this.getView()。byId(" TextArea");
 var cFiles = oUploadCollection.getItems()。length;
 var uploadInfo ="";


 oUploadCollection.upload();


/* MessageToast.show("方法上传称为(" + uploadInfo +")"));
 sap.m.MessageBox.information(" Uploaded" + uploadInfo); */
 },


 onBeforeUploadStarts:function(oEvent){
//标头
 var oCustomerHeaderSlug = new sap.m.UploadCollectionParameter({
 名称:"子弹",
 值:oEvent.getParameter(" fileName")
 });
 oEvent.getParameters()。addHeaderParameter(oCustomerHeaderSlug);
 setTimeout(function(){
 MessageToast.show(" EventUploadStarts触发事件");
 },4000);
 },
 

并且我们调整了代码以适应fileuploader,如下所示:

 var oModel = this.getView()。getModel();
 oModel.refreshSecurityToken();
 var oHeaders = oModel.oHeaders;
 var sToken = oHeaders ['x-csrf-token'];
 var oCustomerHeaderToken = new sap.ui.unified.FileUploaderParameter({
 名称:" x-csrf-token",
 值:sToken
 });


 oFileUploader.addHeaderParameter(oCustomerHeaderToken);
 var oCustomerHeaderSlug = new sap.ui.unified.FileUploaderParameter({
 名称:"子弹",
 值:oFileUploader.getProperty(" value")
 });
 oFileUploader.addHeaderParameter(oCustomerHeaderSlug);


 oFileUploader.upload();
 

根据我使用fileuploader查看的其他博客和示例,这似乎是正确的。

从上载集合切换到文件上载器时,我们需要对令牌采取其他措施吗? 我们正在使用1.38.30 sapui5库。

(29.9 kB)
1条回答
N-Moskvin
2020-09-22 13:37

我遇到了类似问题,我们通过使用"获取请求"解决了这个问题。

一周热门 更多>