【发布时间】:2018-06-06 21:12:43
【问题描述】:
我在 SCP Web IDE 上开发了一个应用程序,该应用程序已发布到 测试启动板。它使用 OData 服务 CUAN_IMPORT_SRV。当我在桌面上运行应用程序时,一切都很好。我可以在 yMarketing 中创建交互。
由于我的应用程序使用条形码功能,我需要在移动设备上使用此应用程序。因此,我将应用程序添加到测试 Fiori 启动板并尝试通过 SAP Fiori 客户端访问启动板。为 OData 模型定义的 URL 的主机名不公开。
我在这里定义 OData 模型:
var uname = "myuser";
var pw = "mypassword";
var oModel = new sap.ui.model.odata.v2.ODataModel("https://hostname:port/sap/opu/odata/sap/CUAN_IMPORT_SRV/", true, uname, pw)
访问服务器需要代理+VPN。
1) 起初,我尝试在 Fiori Client 应用中打开启动板,已配置代理和正在运行的 VPN 连接。这样,我无法访问测试启动板。这是我的错误日志(每一步后我都会清除日志):
找不到页面。
2) 我尝试的下一件事是关闭代理。我登录到我的 SCP 帐户。我现在可以看到启动板,但我的应用程序不可见。这是新的日志:
3) 我删除设置,再次输入启动板 URL,输入我的 SCP 用户名和密码。该应用程序现在可见。这一步的日志:
4) 启动应用(代理仍然关闭)
找不到具有此主机名的服务器
5) 开启代理,运行应用程序,我需要使用我的服务器登录进行身份验证:
6) 当 CRUD-Operation 到服务器完成后,日志显示如下:
这可能是跨域问题吗?在 flpportal 上运行的应用程序...(测试启动板)和我尝试访问的数据在其他主机上。当我在浏览器(HAT、Cordova Facade)中尝试它时,我只是通过使用--disable-web-security --user-data-dir 启动浏览器来忽略 SOP(这适用于测试场景)。但是我猜 ProxyServlet 或 Reverse Proxy 不会让它变得更好,因为它们也只是用于测试目的。这意味着将应用程序与 SAP Fiori Client 一起使用的唯一方法是将其部署到 ABAP 存储库并从与请求的数据相同的来源运行它?
我真的希望有人可以帮助我解决我的问题。 非常感谢!
【问题讨论】:
-
澄清一下:缩写“SOP”是什么意思?我不确定,但这可能是“跨源”问题吗?
-
SOP = 同源策略。所以是的,也许是跨域问题? /iwfnd/error_log 中的消息显示
HTTP method is not allowed for the resource identified by the Data Service Request URI。我认为这不是真正的问题(因为我可以在忽略跨域时访问)。我认为这更多地证明了通常无法检索资源(由于资源位于另一台服务器上,因此所有 HTTP 方法都不起作用)。你怎么看?
标签: proxy sapui5 same-origin-policy