我在 web ide 中创建了 Fiori 应用程序(版本 1.28)并导入到 eclipse 中。在 component.js 配置中,我提到了不带代理的完整 odata 服务 URL,并使用参数 --disable web security 在 chrome 中打开应用程序。
我刚刚在我的 xml 视图中将一些 Odata 模型绑定到表的项目聚合。
是的,我使用的是 OData V2 模型(models.js 中自动生成的代码),csrf 令牌的处理默认为 true。
我可以看到调用被触发,一个是为了获取 CSRF 令牌,另一个是为了批量获取数据(POST 请求)。但是,我仍然面临 403 Forbidden 的问题。无法理解为什么会这样。请参考附件。CSRF Token Fetch和CSRF Token 失败
如果我必须在我的 UI5 代码或 OData 服务实现或网关配置中进行任何更改,请建议。
从 Models.js 中提取
createODataModel: function(oOptions) {
var aUrlParametersForEveryRequest, oConfig, sUrl;
oOptions = oOptions || {};
if (!oOptions.url) {
jQuery.sap.log.error("<ErrorText>");
return null;
}
oConfig = jQuery.extend(true, {}, oOptions.config);
aUrlParametersForEveryRequest = oOptions.urlParametersForEveryRequest || [];
oConfig.metadataUrlParams = oConfig.metadataUrlParams || {};
sUrl = extendMetadataUrlParameters(aUrlParametersForEveryRequest, oConfig.metadataUrlParams, oOptions.url);
return new ODataModel(sUrl, oConfig);
}
从 Component.js 中提取
"config": {
"i18nBundle": "ZMM_PMTOT.i18n.i18n",
"serviceUrl": "https://<host>:<port>/sap/opu/odata/sap/ZMM_PMTOT/",
},
init: function() {
var mConfig = this.getMetadata().getConfig();
var oModel = models.createODataModel({
urlParametersForEveryRequest: ["sap-server", "sap-client", "sap-language"],
url: this.getMetadata().getConfig().serviceUrl,
config: {
metadataUrlParams: {
"sap-documentation": "heading"
}
}
});
this.setModel(oModel);
this._createMetadataPromise(oModel);
}
提前致谢..!!
致以最诚挚的问候, 法南德拉