我正在从SAPUI5项目中实现函数导入调用,并尝试将压缩和编码的字符串(即二进制数据)作为参数的一部分发送到此函数import:
oDataModel.callFunction("/myFunctionImport", {
method: "POST",
urlParameters: {
SubmissionID: 1,
JSONzip: sBase64Data
},
success: function (oData, oResponse) {
// ...
},
error: function (oError) {
// ... }
});
其中“sBase64Data”是压缩和编码的JSON字符串。正确设置网关,以便将函数导入的参数类型分别设置为Edm.Int32和Edm.Binary。
运行此代码时,我不断收到“格式错误的URI文字语法”错误。关于如何直接将二进制参数发送到函数导入调用的任何想法?
我使用的是OData 2.0版。
答案 0 :(得分:0)
我认为Base64不是URL安全的,因为它允许+
,=
和/
。我不确定+和=但/
至少会弄乱一个URL,因为它是分隔符。
尝试通过标准函数encodeURIComponent
运行base64编码的字符串。它会将所有/
转换为%2F
,将所有+
转换为%2B
,将所有=
转换为%3D
。