0

我在 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 FetchCSRF 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);
}

提前致谢..!!

致以最诚挚的问候, 法南德拉

4

0 回答 0