2

ポート 8080 で実行されている JAX-RS/Jersey/Glassfish サービスと通信する標準 gwt ポート 8888 でデバッグする gwt アプリがあります。

これはgwtコードです:

StringBuffer postData = new StringBuffer();

postData.append(URL.encode("username")).append("=").append(URL.encode(user));
postData.append("&");
postData.append(URL.encode("password")).append("=").append(URL.encode(password));

RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, "http://localhost:8888/gestdoc/resources/data/login");
builder.setHeader("Content-type", "application/x-www-form-urlencoded");
try {
    builder.sendRequest(postData.toString(), new RequestCallback() {

          public void onResponseReceived(Request request, Response response) 
          {
              String responseText = response.getText();
              String headers= response.getHeadersAsString();
              String statusText= response.getStatusText();
              int statusCode= response.getStatusCode();
              String toString= response.toString();


              System.out.println("responseText: "+responseText);
              System.out.println("headers: "+headers);
              System.out.println("statusTest: "+statusText);
              System.out.println("statusCode: "+statusCode);
              System.out.println("toString: "+toString);

              GestoreUtenze.this.cddoc.loginResponse(true);
          }


          public void onError(Request request, Throwable exception) {
             // exception handling
          }
        });
} catch (RequestException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

これは出力です:

responseText: 
headers: 
statusTest: 
statusCode: 0
toString: com.google.gwt.http.client.Request$1@6c1a82

私はJerseyサービスをテストしたJavaバッチクライアントを持っていますが、問題ありません。

私は多くの投稿を読みましたが、SAME ORIGIN POLICY の問題があると思います。

私は多くの解決策を試しました:

  1. ブラウザを実行して、gwt アプリを非同一生成元ポリシー (chrome および firefox) でデバッグします。
  2. gwt 構成ファイルに行を追加します
  3. 成功せずにプロキシを設定しようとしました。どのようにできるのか?

この問題を解決するのを手伝ってくれませんか?

4

1 に答える 1

1

私が見つけた唯一の使用可能な方法は、Google Chromeを次のように起動することでした

--disable-web-security

これにより、Same Origin ポリシーが無効になります。

Win 7 でこれを行うには、[Strg + Shift + 右クリック] --> [プロパティ] を押して、ターゲット プロパティに --disable-web-security を追加します。ただし、このプロパティはデバッグ時にのみ使用してください。

FF と IE には、SOP ポリシーをバイパスする有効な方法がないようです (オンラインで見つけた例をどれも取得できず、少なくとも 1 週間試してみました! :/)

于 2012-08-27T16:55:21.327 に答える