来自外部SOLR服务器的GWT中没有显示XML响应?

时间:2012-01-20 08:46:57

标签: xml gwt solr

我开发了一个GWT应用程序,并在localhost机器上安装了Apache Solr Server。

Solr工作正常,查询返回了所需的结果。

现在将结果嵌入我的GWT应用程序中,我使用GWT的RequestBuilder向Solr服务器发送http请求。

查询到达Solr,因为我可以在命令提示符中查看它。

在GWT端,请求成功,因为我的onResponseRecieved()被调用。但响应的大小为0,状态代码为0。

我无法找到问题所在。

此外,如果存在同源策略,则应运行onError()方法,但不是。

以下是我的发送和处理代码

String url = "http://localhost:8983/solr/select/?q=bname:"+whatBox.getText()+"&version=2.2&start=0&rows=10&indent=on";
        RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, URL.encode(url));
        System.out.println("here");
        try{
            Request req = rb.sendRequest(null, new RequestCallback() {

                @Override
                public void onResponseReceived(Request request, Response response) {
                    System.out.println("in res");
                    System.out.println(response.getHeadersAsString());
                    RootPanel.get("content").clear();
                    RootPanel.get("content").add(new Label(response.getText()));    
                }

                @Override
                public void onError(Request request, Throwable exception) {
                    // TODO Auto-generated method stub
                    System.out.println("error");
                }
            });

        }catch(RequestException e){
            e.printStackTrace();
        }

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我认为你违反了SOP rules。为避免这些问题,我建议您使用JsonpRequestBuilder而不是RequestBuilder。还要看一个非常有用的社区维基:Ways to circumvent the same-origin policyHow the Same Origin Policy does affect GWT?