Web services 使用Sencha Cmd应用程序调用外部web服务

Web services 使用Sencha Cmd应用程序调用外部web服务,web-services,rest,extjs,sencha-cmd,Web Services,Rest,Extjs,Sencha Cmd,我用Sencha Cmd创建了一个extjs5应用程序。 我将在tomcat服务器中部署此应用程序,其中有一些REST web服务。 我需要使用这些web服务,但当我使用“sencha app watch”(在端口1841上)运行应用程序时,它找不到这些服务,因为它们位于不同的服务器上(tomcat位于不同的端口上)。 如何使用Sencha CMD的“外部”web服务? 谢谢 stefano以下是一些可用选项: 选项1代理Web服务 您可以在本地计算机上创建一个服务,sencha应用程序用于创建

我用Sencha Cmd创建了一个extjs5应用程序。 我将在tomcat服务器中部署此应用程序,其中有一些REST web服务。 我需要使用这些web服务,但当我使用“sencha app watch”(在端口1841上)运行应用程序时,它找不到这些服务,因为它们位于不同的服务器上(tomcat位于不同的端口上)。 如何使用Sencha CMD的“外部”web服务? 谢谢
stefano

以下是一些可用选项:

选项1代理Web服务

您可以在本地计算机上创建一个服务,sencha应用程序用于创建web请求,然后转到目标远程服务。这称为代理服务

实际上,代理服务将接受一个请求并将其重新提交到所需的目标远程计算机

有一个

和a(虽然这个c#示例并不完全是您所需要的。需要提交的web请求的基础在这段代码中)

选项2JsonP

顶部的另一个选项是,如果另一台机器上的web服务支持
jsonp
,则应该可以访问它们。然而,jsonp只支持
get
,所以如果您有一个完整的rest实现,一些服务可能无法工作

以及
JsonP
的extjs请求示例:

Ext.data.JsonP.request({
            'url': 'url',
            params: {
                'param1': 'value'
            },
            success: function (result, request) {
                //success
            }
        });
选项3在单个端口上托管多个应用程序/路径

然而,由于tomcat服务器似乎实际上可能在同一台机器上。难道没有办法通过tomcat托管web服务和应用程序路径吗

例如,jetty似乎有一个托管的选项

选项4启用CORS

根据所使用的体系结构/框架,您可以在rest应用程序上启用跨源资源共享

浏览器基本上会先发送一个请求,看看是否可以访问资源。然后服务器将使用允许的源域进行响应。启用CORS后,可以在两个不同的端口/服务器之间授予访问权限


以下是示例

感谢您的留言。但是,如果我必须在模型对象中配置e REST代理,您会建议我怎么做?@stefano我肯定会先看看是否可以在带有Web服务的服务器上启用cors。