2014-09-28 69 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

相关问题