Я создал приложение ExtJS 5 с помощью Sencha Cmd. Я разверну это приложение на сервере Tomcat, где есть несколько веб-служб REST. Мне нужно было бы использовать эти веб-службы, но когда я запускаю приложение с «наблюдением за приложением sencha» (на порту 1841), оно не находит службы, потому что они находятся на другом сервере (tomcat находится на другом порту). Как я могу использовать «внешний» веб-сервис с Sencha CMD? Спасибо Стефано
Вызов внешнего веб-сервиса с помощью приложения Sencha Cmd
Ответы:
Вот некоторые из доступных вариантов:
Вариант 1 Прокси-веб-служба
Вы можете создать службу на локальном компьютере, где находится приложение sencha, которое создает веб-запросы, которые затем переходят к целевым удаленным службам. Это называется прокси-сервис.
По сути, прокси-сервис примет запрос и повторно отправит его на желаемую целевую удаленную машину.
Здесь есть пример php
И пример веб-запроса C# здесь (Хотя этот пример С# не совсем то, что вам нужно. Основа веб-запроса, который необходимо отправить, находится в этом коде.)
Вариант 2 JsonP
Другой вариант сверху: если веб-службы на другом компьютере поддерживают jsonp
, они должны быть доступны. Однако jsonp поддерживает только get
, поэтому, если у вас есть полная реализация остальных, некоторые службы, вероятно, не будут работать.
Дополнительная информация о jsonp
И пример запроса extjs для JsonP
:
Ext.data.JsonP.request({
'url': 'url',
params: {
'param1': 'value'
},
success: function (result, request) {
//success
}
});
Вариант 3 Размещение нескольких приложений/путей на одном порту
Однако, поскольку кажется, что сервер tomcat на самом деле может быть на той же машине. Нет ли способа разместить как веб-службы, так и путь приложения через tomcat?
Похоже, например, что у пристани есть возможность размещать два приложения на одном порту
Вариант 4 Включить CORS
Вы можете включить совместное использование ресурсов между источниками в остальном приложении в зависимости от используемой архитектуры/фреймворка.
Браузер сначала отправит запрос, чтобы узнать, может ли он получить доступ к ресурсу. И тогда сервер ответит разрешенными исходными доменами. После включения CORS доступ может быть предоставлен между двумя разными портами/серверами.
Отличный сайт на CORS с инструкциями по включению в большинстве базовых настроек
Вот пример документация для весны