GWTを使用してリクエストを取得してXMLデータを取得しますか?
-
28-10-2019 - |
質問
こんにちは、仲間のメンバー、
このような単純なGETリクエストを使用してXMLデータを返すWebサービスがあります。
http:// my-service:8082/qc/getdata?paramx =0169¶my= 2
このサービスは、パラメーターの値に従ってページ内のraw XMLを返します。
requestBuilder、requestなどを使用してGWTのGWTリクエストからこのデータを取得しようとしています。ただし、応答は空のテキスト、ゼロのステータスコードを提供します(これは何も意味しませんが、発生するはずではありません)、等々。
これが機能しない単純化されたコードです。
public class SimpleXML implements EntryPoint {
public void onModuleLoad() {
this.doGet("http://my-service:8082/qc/getData", "0169", "2");
}
public void doGet(String serviceURL, String paramX, String paramY) {
final String getUrl = serviceURL + "?paramX=" + paramX + "&idTarification=" + paramY;
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, getUrl);
try {
Request response = builder.sendRequest(null, new RequestCallback() {
@Override
public void onResponseReceived(Request request, Response response) {
response.getStatusCode(); // Gives me 0 (zero) :(
}
@Override
public void onError(Request request, Throwable exception) {
// ... doesn't matter for this example
}
});
} catch (RequestException e) {
// ... doesn't matter for this example
}
}
}
これがうまくいかない理由はわかりません。これは本当に簡単だからです。チュートリアルを見てきました。
前もって感謝します
解決
その理由は、ブラウザがajaxでのクロスサイトリクエストを許可しないためです(参照 同じ起源のポリシー).
これは、同じサーバー上のサービス、HTMLページと同じポート(同じプロトコルを使用)のみを呼び出すことができることを意味します。クロスサイトのリクエストを実行する場合は、説明したようにJSONPを使用できます http://code.google.com/webtoolkit/doc/latest/tutorial/xsite.html.
所属していません StackOverflow