Доступ к файлу на другом сервере со стороны клиента GWT - PullRequest
2 голосов
/ 16 августа 2010

У меня есть файл, sample.xml, расположенный на одном веб-сервере. Я хочу получить доступ к этому файлу из приложения GWT, запущенного на другом сервере. Я не хочу делать вызовы RPC тому же серверу, обслуживающему приложение GWT, и получать доступ к необходимому файлу на стороне сервера (например, прокси). Я хочу получить доступ к файлу напрямую со стороны клиента, поскольку мое приложение будет размещаться в виде статических файлов на веб-сервере.

Есть ли способ сделать это?

Ответы [ 2 ]

1 голос
/ 16 августа 2010

Конечно - вы должны выполнить XHR (XmlHTTPRequest) из браузера, а затем проанализировать данные.
В GWT вы можете сделать это, используя класс RequestBuilder (см. здесь ).

Обратите внимание, что могут применяться некоторые ограничения на стороне клиента (например, политика единого происхождения и т. Д.)

Вы выдаете запрос (GET или POST - GET в вашем случае) и передаете экземпляр обратного вызова.
Метод onResponseReceived экземпляра получает объект Response, который при вызове метода getText возвращает полученное содержимое.

0 голосов
/ 21 октября 2010

Вы пытаетесь получить ссылку на свой сайт (a.com/index.html) b.com/sample.xml. Я вижу несколько вариантов.

Если у вас есть доступ к b.com серверам:

  • Отредактируйте sample.xml в sample.js, чтобы она содержала ту же информацию в JSON с обратным вызовом, и указывайте ее с помощью тега script
  • Скомпилируйте ваш сайт, используя межсайтовый загрузчик (см. Управление выводом компилятора ), укажите index.html в b.com/index.html, все остальные файлы поместите в a.com. Тогда все ваши вызовы RPC могут перейти на b.com, но это означает, что пользователю придется перейти на b.com вместо a.com

Если у вас нет доступа к b.com серверам: - Просто предоставьте людям ссылку для скачивания sample.xml - Разместите a.com на сервере с некоторой поддержкой сценариев (PHP, Python, Ruby, Java и т. Д.) И установите прокси на b.com/sample.xml

...