如何从GWT上的PHP Web服务获得有效响应



我正在尝试从php Web服务(我在我的GWT应用程序的客户端进行了localhost and Insted and forstion(获取数据。

我尝试使用以下软件包com.google.gwt.http.client.*,看起来代码工作正常,但是响应总是0,很可能是一个CORSS问题,但是即使我'VE尝试使用requestBuilder.setHeader(..);

这是我正在处理的代码:

    String url = "http://localhost/geoTrackerTest.php?id=15";
    RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, URL.encode(url));
    requestBuilder.setHeader("Access-Control-Allow-Origin", "http://localhost");
    requestBuilder.setHeader("Access-Control-Allow-Methods", "POST, GET, UPDATE, OPTIONS");
    requestBuilder.setHeader("Access-Control-Allow-Headers", "x-http-method-override");
    try {
        Request request = requestBuilder.sendRequest(null, new RequestCallback() {
          public void onError(Request request, Throwable exception) {
             GWT.log("Error: "+exception.getMessage());
          }
          public void onResponseReceived(Request request, Response response) {
            if (200 == response.getStatusCode()) {
                GWT.log("response: "+response.getText());
            } else {
                GWT.log("response code: "+response.getStatusCode());
            }
          }
      });
    } catch (RequestException e) {
      GWT.log("Request Exception: "+e.getMessage());
    }

我仍然得到0作为响应。

您需要从服务器端(不是从GWT客户端端(设置标头,然后您可以从GWT RequestBuilder中发出跨站点请求。在服务器端这样的东西:

Response.setHeader("Access-Control-Allow-Origin","http://localhost");

如果您只需要发送获取请求,则可以使用JSONP(http://www.gwtproject.org/javadoc/javadoc/latest/latest/com/google/google/google/glient/jsonp/jsonp/client/jsonpreqoestbueld.html(来发送Cross domain domain domain domain domain domain domain domain domain请求,无标题设置在服务器端。

最新更新