2016-08-26 12 views
1

我在前端服務器中部署了自定義的UI5應用程序(使用外部REST服務 - >託管在另一個Java堆棧系統中的服務)。使用Fiori前端服務器的外部Restful服務時需要的配置/步驟

我使用Ajax直接使用URL調用服務,如下所示。 當我在本地主機(eclipse)中使用「代理」時,此應用程序已成功運行。

- >Ajax Call code Snippet

所以我替換目標URL代理,而在前端部署。 (http://xxx.xxx:端口)

從前端服務器運行時,出現如下所示的交叉原點錯誤。

ERROR1:<的http:// XXX:端口/ XXX/ngservices/REST /查詢/ ZQUE_WEBSERV_APPHISTORY/executeGet。對預檢請求的響應不會通過訪問控制檢查:請求的資源上不存在「Access-Control-Allow-Origin」標頭。因此不允許訪問原產地'http://xxx:port'。響應有HTTP狀態代碼401>

在chrome中啓用CORS插件後,我得到了未經授權的錯誤,如下所示。

誤差2:<的http:// XXX:端口/ XXX/ngservices/REST /查詢/ ZQUE_WEBSERV_APPHISTORY/executeGet。預檢的響應具有無效的HTTP狀態代碼401>

從localhost運行時,我初始得到了上述錯誤。之後,我使用了代理並解決了問題。

我剛剛在前端服務器上部署了應用程序並直接運行它。我沒有做任何其他配置。

我是否需要爲消耗這些外部服務做任何額外的配置,或者提出任何其他建議。

重要信息:

*能夠從本地主機調用外部服務(日食 - >使用代理在這裏),但無法從前端服務器調用服務。

*前端架構:中央集線器部署並連接到當前的SRM,HR和CRM後端。

問候

Phani Poorna

+0

請提供代碼。從您的來電,例如 – zyrex

+0

它附在上面的圖片中。 Ajax代碼片段 –

+0

變量設置= { 「異步」:真實, \t \t \t \t 「跨域」:真實, \t \t \t \t 「URL」:「HTTP:// XXX:端口/ XXX/ngservices/REST /查詢/ ZQUE_WEBSERV_APPHISTORY/executeGet」, \t \t \t \t 「方法」: 「GET」, \t \t \t \t 「報頭」:{ \t \t \t \t 「內容類型」: 「應用/ JSON」, \t \t \t \t 「接受」: 「應用/ JSON」, \t \t \t \t 「緩存控制」: 「無緩存」, \t \t \t \t 「授權」: 「基本XXXX」, \t \t \t \t } \t \t \t \t}; \t \t \t $ .ajax(設置).done(函數(響應){}) –

回答

1

這兩種錯誤可以通過創建和配置平臺上的目標來解決。

目標本質上是一個代理:當你創建它時,你指定了後端URL,認證機制(主要傳播/基本認證等)。從你的客戶端,你只需要連接到你的目的地來查詢後端。

Fiori前端服務器是什麼意思?您是指HANA雲平臺上託管的Portal服務?

如果是這樣,那麼您可以通過從您的HCP帳戶轉到連接 - 目的地來創建目的地。從您的應用程序菲奧裏,然後需要使用以下URL模式來連接您的目的地:

/destinations/<destination name>/<whatever you want to add to the URL the destination points to> 

如果您使用的是不同的PaaS,我敢肯定它會創建您的客戶端之間的代理的一些類似的方式和你的後端。 (編輯:我剛剛看到你正在使用中心樞紐部署 - 我不熟悉這個系統,但它必須有一個非常類似的創建目的地的方式)。

希望這可以幫助,讓我知道如果您有任何問題。

+0

謝謝info.Its不是HANA雲平臺。它是一個內部中央中樞部署,其中該前端系統將通過單個聚合點連接到多個後端系統。通常,所有後端都將是ABAP堆棧(SAP系統)。並且OData服務將託管在前端服務器上。但在我們的情況下,我們的後端是JAVA棧(就像典型的非SAP系統)。我們在後端自己託管了服務。所以我直接從前端調用該URL。所以我想知道如何配置需要完成。 –

+0

您是否檢查過您是否可以在onpremise集線器上找到相同的目的地? –