2014-10-16 142 views
1

我有一個GWT模塊,並在其中我通過導航到不同的URL:GWT處理請求錯誤

Window.Location.assign(url); 

的導航網址,然後通過一個servlet處理,直到這一點,如果有錯誤它是由resp.sendError方法處理的

resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Failed."); 

然後,它將導航到瀏覽器錯誤頁面。不過,我想知道有沒有我無法導航到錯誤頁面?即我能夠檢查我的GWT代碼是否有錯誤,然後做些什麼?像重新發送請求等。

謝謝!

+0

你的問題不清楚。你可以說得更詳細點嗎 ? – Pintouch 2014-10-16 15:46:34

+0

情景不清楚或我所做的不清楚? – jonatzin 2014-10-16 15:53:03

回答

2

當你離開你的web應用程序就是這樣。您應該製作一個HTTP request still from your webapplication,而不是使用Window.Location.assign,例如使用RequestBuilder。從前面提到的文檔
例子:

import com.google.gwt.http.client.*; 
... 

String url = "http://www.myserver.com/getData?type=3"; 
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url)); 

try { 
    Request request = builder.sendRequest(null, new RequestCallback() { 
    public void onError(Request request, Throwable exception) { 
     // Couldn't connect to server (could be timeout, SOP violation, etc.) 
    } 

    public void onResponseReceived(Request request, Response response) { 
     if (200 == response.getStatusCode()) { 
      // Process the response in response.getText() 
     } else { 
     // Handle the error. Can get the status text from response.getStatusText() 
     } 
    } 
    }); 
} catch (RequestException e) { 
    // Couldn't connect to server 
} 

請注意,這隻會工作,如果你的servlet和web應用在同一個地址(域名,端口,協議),因爲Same Origin Policy。如果情況並非如此,那麼仍然有some options,就像帶有填充的JSON(GWT通過JsonpRequestBuilder支持)。

+0

謝謝伊戈爾我會測試它並讓你知道 – jonatzin 2014-10-16 16:19:09