无法访问从gwt应用程序部署在vert.x中的应用程序公开的Web服务

时间:2013-02-07 13:13:23

标签: web-services gwt vert.x

我有部署在vert.x中的应用程序公开的REST Web服务,我正试图从GWT应用程序访问它。获得了一些回应,但是身体空洞。

当我使用http4e访问服务时,它给出了预期的响应。

除GWT中的普通Web服务访问代码外,是否还有其他必需的配置?下面给出了Web服务访问的代码:

final RequestBuilder requestBuilder = new RequestBuilder(
                RequestBuilder.POST, "https://localhost:80/login");
requestBuilder.setHeader("Content-Type", "text/plain");
requestBuilder.sendRequest("{\"userId\":\"" + username
                    + "\",\"password\":\""
                    + password + "\"}",
                    new RequestCallback() {

                        @Override
                        public void onResponseReceived(Request request,
                                    Response response) {
                                System.out.println("response:"
                                        + response.getText());
                            }

                            @Override
                            public void onError(Request request,
                                    Throwable exception) {
                                System.out.println("ex:"
                                        + exception.getMessage());
                            }
                        });

编辑:我认为客户端请求存在一些问题。调用sendRequest函数时,将调用RequestCallback实现中的onResponseReceived,并返回空响应。使用Firebug进行分析时,POST请求状态报告为已中止

1 个答案:

答案 0 :(得分:2)

尽管您转向localhost,但这是CORS(跨源资源共享)。根据{{​​3}}不同的端口意味着不同的起源。 specification默认禁止跨域 XMLHTTPRequest 。您应该将 Access-Control-Allow-Origin 标头添加到服务器的响应中。有关详细信息,请阅读CORS规范的Modern browsers部分。