GWTからリモートサーブレットを呼び出そうとしていますが、GWT-RPCは実際には動作していないようですので、私はRequestBuilderを使ってそれを実行しようとしています。ここでGWTからリモートサーブレットを呼び出す
は、コードスニペットです:
String url = "http://some-remote-host:8888/GWTJSTest/SomeServlet?name=" + textBox.getText();
RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, url);
// requestBuilder.setHeader("Origin", "*");
// requestBuilder.setHeader("Access-Control-Allow-Origin", "*");
try
{
requestBuilder.sendRequest(null, new RequestCallback()
{
public void onResponseReceived(Request request, Response response)
{
if (response.getStatusCode() == 200)
{
Window.alert(response.getText());
}else
{
Window.alert(response.getText() + " : " + response.getStatusCode() + response.getStatusText());
}
}
public void onError(Request arg0, Throwable arg1)
{
Window.alert(arg1.toString());
}
});
} catch (RequestException e)
{
Window.alert("CATCH BLOCK: " + e.getMessage());
e.printStackTrace();
}
は実際には、IE8はデータを返しますが、警告メッセージの後に、しかし、Firefoxはしません!どうしてこれなの?
ご覧のとおり、いくつかのリクエストヘッダーを設定しようとしていますが、方法はありません。
(サーバとクライアントの間で
JSONP
を変換)<add-linker name="xs" />
.gwt.xml
へをそして
JsonpRequestBuilder
でGWT-PRC
を置き換え、あなただけのだけ呼び出すことができますサーバーのプロキシサーブレットを使用して、他のサーバーのメソッドを呼び出すことができます。 –