2011-02-25 150 views
2

我在GWT的前端使用RequestBuilder向Restlet Web Service發送HTTP GET請求。但是,請求可以進入Web服務,Web服務返回一個String(格式爲JSON)。當我通過fireBug監視進程時,問題是沒有響應返回。任何人都知道爲什麼?RequestBuilder返回空響應

下面是代碼:

String url = "http://localhost:8080/Books"; 

RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url); 

try { 
    builder.sendRequest(null, new RequestCallback() { 

    public void onError(Request request, Throwable exception) 
    { 
     exception.printStackTrace(); 

     Window.alert("fail - " + exception.getMessage()); 
    } 

    public void onResponseReceived(Request request, Response response) 
    { 

     Window.alert("success - " + response.getText()); 
    } 
    }); 
} catch (RequestException e) 
{ 
    e.printStackTrace(); 
} 

response.getText()總是返回空。

在此先感謝!

艾克

+0

如果請求正在觸發,但如螢火蟲中看到一個空的響應返回,您的服務器端代碼有問題。你會請張貼代碼嗎? –

+0

幾個潛在問題。首先,確保firefox不處於離線模式。什麼是響應狀態碼,這非常關鍵。 500意味着你有一個服務器問題,404意味着你的端點是錯誤的,而200意味着你有一個非rpc問題(在你的服務代碼更深的地方)。 –

回答

0

你的問題是同源策略。您的所有請求中的協議,域名和端口必須與您的GWT應用服務相同。如果您在Eclipse 8888端口上提供服務,並且您的自定義服務器端口爲8080,則這不是微不足道的。

嘗試配置一個Apache服務器代理例如請求到http://localhost/gwt-app.htmlhttp://localhost:8888/gwt-app.html和其他所有到您的服務器在http://localhost:8080/*