質問

こんにちは、仲間のメンバー、

このような単純な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.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top