2014-09-28 80 views
0

我使用Sencha Cmd創建了ExtJS 5應用程序。 我將在Tomcat服務器上部署此應用程序,其中有一些REST Web服務。 我需要使用這些Web服務,但是當我使用「sencha app watch」(端口1841)運行應用程序時,它找不到服務,因爲它們位於不同的服務器上(tomcat位於不同的端口上)。 如何使用Sencha CMD使用「外部」Web服務? 感謝 斯特凡諾使用Sencha Cmd應用程序調用外部Web服務

回答

1

這裏有一些可用的選項:

選項1代理Web服務

您可以創建本地機器上的服務,其中煎茶的應用是創建網頁請求然後轉到目標遠程服務。這被稱爲代理服務。

本質上,代理服務將接受請求並將其重新提交給所需的目標遠程機器。

有一個php example here

而一個C# web request example here(雖然這個C#示例不正是您所需要。這將需要提交的Web請求的基礎是在此代碼。)

選項2JSONP

另一種選擇頂掉,如果是在其他機器支持jsonp Web服務,他們應該是可訪問的。然而,jsonp只支持get,所以如果你有一個完整的休息執​​行一些服務可能無法正常工作。

More information on jsonp

而對於JsonP一個ExtJS請求示例:

Ext.data.JsonP.request({ 
      'url': 'url', 
      params: { 
       'param1': 'value' 
      }, 
      success: function (result, request) { 
       //success 
      } 
     }); 

選項3單一端口上託管多個應用/路徑

然而,因爲它看起來像Tomcat的服務器可能實際上在同一臺機器上。有沒有辦法通過tomcat託管Web服務和應用程序路徑?

它看起來像,例如,碼頭有一個選項主辦two apps on the same port

選項4啓用CORS

您可以在其他應用程序啓用跨源資源共享依賴於架構/使用框架。

瀏覽器將首先發送請求,以查看它是否可以訪問資源。然後服務器會迴應允許的原始域名。一旦CORS啓用然後訪問可以在兩個不同的端口/服務器

Great site on CORS with instructions for enabling on most basic setups

之間被授予下面是例子documentation for spring

+0

謝謝您的留言。但是如果我必須在Model對象中配置e REST代理,你會建議嗎? – stefano 2014-09-29 13:40:49

+0

@stefano我一定會看到cors是否可以在服務器上首先啓動web服務。 – weeksdev 2014-10-07 00:54:43

相關問題