GWT: add-linker (межсайтовый) не работает с серверным кодом!

Я пытаюсь сделать кросс-сайт в GWT.

Согласно GWT:Same Origin Policy я добавил в XML-файл модуля.

Он работает нормально, пока я не вызываю какую-либо удаленную службу GWT (используя GWT-RPC), но когда я пытаюсь вызвать любую удаленную службу, я не получаю ответа!

Кто-нибудь знает, как исправить межсайтовую проблему в GWT с удаленными службами GWT?

Заранее спасибо!


person Muhammad Hewedy    schedule 08.02.2011    source источник


Ответы (2)


Ответ Стива правильный, однако есть еще один вариант, который вы можете рассмотреть, который является лучшим подходом, если вы хотите требовать аутентификацию для взаимодействия с сервером без использования OAUTH. Суть в том, что межсайтовый компоновщик не обходит SOP, но позволяет размещать index.html на сайте, отличном от кода JS, чтобы вы могли иметь код JS и сервлеты на одном сервере и загружать их. От другого. Чтобы обойти SOP, вы можете использовать метод под названием JSON с дополнением или JSONP. По сути, он использует тег script для внедрения внешнего запроса в среду, заключая запрошенные данные в обратный вызов. Для этого вы можете использовать одну из многих серверных реализаций, таких как Jersey. GWT 2 включает объект JsonpRequestBuilder, который выполняет за вас всю работу на стороне клиента и может использоваться так же, как RequestBuilder. См. это. статья для учебника.

person LINEMAN78    schedule 09.02.2011

Если вы хотите получить доступ к какому-либо другому серверу (example.com) из своего приложения GWT, вам придется выполнить RPC на своем сервере, а в коде на стороне сервера вам придется сделать еще один HTTP-вызов страницу example.com, которую вы ищете.

На странице, на которую вы ссылаетесь относительно межсайтовых ссылок, указано, что добавление <add-linker name="xs"/> в файл модуля позволяет разделить ваш хостинг между двумя серверами:

  • Один сервер для статических файлов (все файлы html и js, созданные GWT, и все изображения)
  • Один сервер для динамических вызовов (все ваши RPC идут сюда, и ваша домашняя страница index.html должна быть здесь)
person Steve Armstrong    schedule 08.02.2011