2016-04-06 8 views
1

Ich verwende com.google.gwt.user.client.Window.open(String url, String name, String features), um eine Datei vom Server herunterzuladen.com.google.gwt.user.client.Window Wie bekomme ich den HTTP-Statuscode von der Antwort?

Jedes Denken ist in Ordnung, wenn das Ergebnis vom Server 200 OK ist - ich bekomme Datei.

Problem tritt auf, wenn das Ergebnis vom Server sich von 200 OK unterscheidet, z. B. 500 Internal Server Error oder 401 Unauthorised. Dann bekomme ich eine hässliche Tomcat Error Seite, die Informationen über das Problem enthält.

Ich möchte jeden Statuscode anders als 200 OK abfangen und meine eigenen Informationen anzeigen oder Redirect zu f.e. Login Page.

Wie kann ich dies erreichen?

Antwort

2

Um die erforderliche Funktionalität zu erreichen, müssen wir zunächst prüfen, ob eine Datei auf dem Server vorhanden ist. Wir können das mit einer einfachen Kopfanfrage machen. Hier ist ein Beispielcode für denselben

XMLHttpRequest req = XMLHttpRequest.create(); 
req.open("HEAD", fileURL); 
req.setOnReadyStateChange(new ReadyStateChangeHandler() { 

    @Override 
    public void onReadyStateChange(XMLHttpRequest xhr) { 

     if (xhr.getReadyState() == XMLHttpRequest.DONE) { 
      if (xhr.getStatus() == 200) { 
       Window.open(fileURL, winTitle, ""); 
      } else { 
       // TODO handle other status codes 
      } 
     } 
    } 
}); 
req.send(); 
Verwandte Themen