【问题标题】:GWT RequestBuilder Post Response return 0 StatusCodeGWT RequestBuilder 发布响应返回 0 状态代码
【发布时间】:2013-11-10 06:38:45
【问题描述】:

我创建了一个非常简单的 servlet,它使用 HTTP Post 方法。我已经使用一个简单的 HTML 表单在我的本地 Apache Tomcat 服务器上对其进行了测试。我想将它与我的 GWT 应用程序集成。我可以使用 FormPanel 调用它 - 在这种情况下,它会下载内容并且我的浏览器窗口中会闪烁。

我知道我需要使用 RequestBuilder 来访问它。但是我重载的 public void onResponseReceived(Request request, Response response) 方法中的 response.getStatusCode() 总是返回状态为 0 并且 response.getText() 返回 null

    String url = "http://localhost:8080/servlets/servlet/ShapeColor";
    builder = new RequestBuilder(RequestBuilder.POST, URL.encode(url));


    try {
        String json = getJSONString();
        //builder.setTimeoutMillis(10000);
        builder.setHeader("Access-Control-Allow-Origin", "*");


        builder.setHeader("Content-type", "application/x-www-form-urlencoded");
        builder.sendRequest(json, new RequestCallback() {

            @Override
            public void onError(Request request, Throwable exception) {
                 Window.alert("Couldn't retrieve JSON");
            }

            @Override
            public void onResponseReceived(Request request, Response response) {
              if (200 == response.getStatusCode()) {
               System.out.println("res:"+response.getText());
              } else {
                  System.out.println("err: " + response.getStatusCode()+","+response.getText());
              }
            }
          });
        //Request response = builder.send();

    } catch (RequestException e) {
        // TODO Auto-generated catch block

    }

我尝试了很多事情,包括根据 CORS 参考 (https://code.google.com/p/gwtquery/wiki/Ajax#CORS_%28Cross_Origin_Resource_Sharing%29) 更改我的 servlet

它始终可以在使用我的 test.html 的浏览器上运行,但不能在我的应用程序中运行。虽然,onResponseReceived 方法总是被调用

谢谢

KKM

【问题讨论】:

    标签: gwt servlets tomcat7


    【解决方案1】:

    您是否检查过您在应用中的调用是否以某种方式违反了同源策略 (http://en.wikipedia.org/wiki/Same-origin_policy)? GWT RequestBuilder 在内部使用 XMLHttpRequest,因此它属于 SOP。

    您的 GWT 应用程序是否在与 servlet 相同的域(服务器 + 端口)内运行?是否使用相同的协议(https 或 http)?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多