RequestBuilder возвращает пустой ответ - PullRequest
2 голосов
/ 25 февраля 2011

Я использую RequestBuilder на внешнем интерфейсе GWT для отправки HTTP-запроса GET в веб-службу Restlet. Однако запрос может попасть в веб-службу, и веб-служба возвращает строку (в формате JSON). Проблема в том, что ответ не возвращается, когда я наблюдаю за процессом через fireBug. Кто-нибудь знает почему?

Вот код:

String url = "http://localhost:8080/Books";

RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);

try {
  builder.sendRequest(null, new RequestCallback() {

    public void onError(Request request, Throwable exception) 
    {
      exception.printStackTrace();

      Window.alert("fail - " + exception.getMessage());
    }

    public void onResponseReceived(Request request, Response response) 
    {

      Window.alert("success - " + response.getText());
    }
  });
} catch (RequestException e) 
{
  e.printStackTrace();
}

response.getText () всегда возвращает пустое значение.

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

Ike

Ответы [ 2 ]

1 голос
/ 16 ноября 2011

Делаете ли вы свой вызов серверу Restlet на том же хосте и порте, который обслуживал веб-страницу, которая делает запрос?

Я предполагаю, что вы сталкиваетесь с http://en.wikipedia.org/wiki/Same_origin_policy

0 голосов
/ 24 ноября 2011

Ваша проблема - та же политика происхождения.Протокол, домен и порт во всех ваших запросах должны совпадать с теми, в которых обслуживается ваше приложение GWT.Если вы работаете в Eclipse через порт 8888, а ваш пользовательский сервер - через порт 8080, это не будет тривиально.

Попробуйте настроить сервер apache для прокси, например, запросы к http://localhost/gwt-app.html - http://localhost:8888/gwt-app.htmlвсе остальное на ваш сервер на http://localhost:8080/*

...