Проблема GWT RequestBuilder

Я пытаюсь вставить jsp в наше приложение gwt. Я использую для этого конструктор запросов. Вот мой код:

String url = "http://localhost:8080/my-spring-example/hello.htm";
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, url);
RequestCallback callback = new RequestCallback() {
 public void onError(Request request, Throwable exception) {
  spring.setHTML("Die Daten konnten nicht geladen werden");
 }

 public void onResponseReceived(Request request, Response response) {
  String responseAsText = response.getText();
  if (responseAsText.equals("") || responseAsText == null ){
   spring.setHTML("Der String ist leer");   
  } else {
   spring.setHTML(responseAsText);
  }
 }
};

try {
 rb.sendRequest(null, callback);
} catch (RequestException e) {
 e.printStackTrace();
}

Если я позвоню http://localhost:8080/my-spring-example/hello.htm ответ firebug:

<head><title>Hello :: Spring 3 Application</title></head>
<body>
 <h1>Hello World, Spring 3.0!</h1>
 <p>Es gibt 32 Einträge</p>
</body>

Если я позвоню через наше приложение gwt, ответ в firebug будет пустой строкой.

Если я вызову http://localhost:8080/my-spring-example/hello.htm, ответ в wirehark:

<head><title>Hello :: Spring 3 Application</title></head>\n
<body>\n
\t<h1>Hello World, Spring 3.0!</h1>\n
\t<p>Es gibt 32 Eintr\344ge</p>\n
</body>

Если я позвоню через наше приложение gwt, ответ в wirehark будет таким же:

<head><title>Hello :: Spring 3 Application</title></head>\n
<body>\n
\t<h1>Hello World, Spring 3.0!</h1>\n
\t<p>Es gibt 32 Eintr\344ge</p>\n
</body>

Не могу понять, что не так....вызов идет корректно, приходит ответ, но что-то происходит, поэтому клиент gwt показывает в ответ только пустую строку. я совсем запуталась....


person cupakob    schedule 24.01.2011    source источник


Ответы (1)


Я решил проблему... для вызова jsp я использую локальный хост, но я вызываю веб-приложение через другой хост. Я должен следовать «Политике того же происхождения» для JavaScript, и теперь все работает нормально.

изменить: jsp можно вставить только в том случае, если вы используете тот же хост и протокол для вызова. Например, я вызываю наше приложение через http://www.mycompany.com:8080/gwt-client/. Для jsp был вызов http://localhost:8080/my-spring-example/hello.htm. JSP и веб-приложение находятся на разных хостах. Если я изменю вызов jsp на http://www.mycompany.com:8080/my-spring-example/hello.htm, тогда сработает.

person cupakob    schedule 25.01.2011