2017-05-18 3 views
1

EclipseでSAP NetWeaver PO 7.5アプリケーションサーバーにデプロイされたSAPUI5 Webアプリケーションをいくつか作成しました。 これらのアプリケーションはすべて、一般的なプロジェクトで汎用コンポーネントを使用しています。私はちょうどこのブートストラップスクリプトタグとindex.htmlにヘッダを経由して特定のアプリケーションでそれらを利用可能に:SAP Cloud5を介してWebIDEからSAP Cloudの別のプロジェクトを参照する方法

<!-- Bootstrapping UI5 --> 
<script id="sap-ui-bootstrap" 
     src="/sapui5/resources/sap-ui-cachebuster/sap-ui-core.js" 
     data-sap-ui-libs="sap.m" 
     data-sap-ui-theme="path.to.custom.theme" 
     data-sap-ui-compatVersion="edge" 
     data-sap-ui-resourceroots='{"com.namespace.ui.specificapp": ".", "com.namespace.ui.common" :"/com.namespace~ui~common~web"}' 
     data-sap-ui-frameOptions="trusted" 
     data-sap-ui-appCacheBuster = "./,/com.namespace~ui~common~web/" > 
</script> 

すべてが正常に動作します。しかし、今日の課題は、これらのアプリケーションをSAPクラウドに移行することです。私が今行ったことは、プロジェクト(共通プロジェクトを含む)をWebIDEにインポートすることです。私が最初に発見したのは、アプリケーションが共通プロジェクトからコンポーネントを見つけることができないため、data-sap-ui-resourceroots属性はもはや機能しません。だから私は、SAPクラウドに共通のアプリケーションを展開し、このようなのindex.htmlのブートストラップスクリプトタグ内の対応するURLを挿入:

<script id="sap-ui-bootstrap" 
    src="/sapui5/resources/sap-ui-cachebuster/sap-ui-core.js" 
    data-sap-ui-libs="sap.m" 
    data-sap-ui-theme="path.to.custom.theme" 
    data-sap-ui-compatVersion="edge" 
    data-sap-ui-resourceroots='{"com.namespace.ui.specificapp": ".", "com.namespace.ui.common" :"/https://common-aXXXXXXXX.dispatcher.hana.ondemand.com/"}' 
    data-sap-ui-frameOptions="trusted" 
    data-sap-ui-appCacheBuster = "./,/com.namespace~ui~common~web/" > 

これは、ブラウザがより汎用的な部品のためのJS-ファイルを検索してみましょう一般的なプロジェクトが、次のエラーに私をリード:

Note: Your browser does not support JavaScript or it is turned off. Press the button to proceed.

これはhttps://common-aXXXXXXXX.dispatcher.hana.ondemand.com/ホストによって応答します。 HTTPリクエストを分析すると、パラメータAccept:text/plain, */*; q=0.01が設定されていることがわかります。 SAPUI5がプレーンテキストを要求している理由、またはこの動作を変更できる理由はわかりません。このアプリケーション構造をSAPクラウドに移行する方法を知っている人はいますか?

+0

neo-app.jsonファイルに一般的なアプリケーションへのリンクを定義しましたか? –

答えて

1

答えは簡単です:サーバーはCSRF攻撃を防ぐために、他の発信元へのリクエストをブロックします。オン・プレミス・ソリューションでは、すべてのソース・ファイルは同じ起点から来ます。 SAP Cloudでは、各アプリケーションが独自のURLでスタンドアロンで展開されます。したがって、ブラウザは他のプロジェクトからのJavaScriptファイルを受け付けません。これらのファイルにアクセスするソリューションは、共通プロジェクトのURLをSAP Cloud Cockpitの宛先に追加することです。

関連する問題