我使用com.google.gwt.user.client.Window.open(String url, String name, String features)
从服务器下载文件。
当服务器的结果是200 OK
时,每个想法都没问题 - 我正在获取文件。
当服务器的结果与200 OK
不同时出现问题,例如:500 Internal Server Error
或401 Unauthorised
。然后我得到了丑陋的Tomcat错误页面,其中包含有关该问题的信息。
我想捕获与200 OK
不同的每个状态代码并显示我自己的信息或重定向到f.e. Login Page
。
我怎么能做到这一点?
答案 0 :(得分:2)
要实现所需的功能,首先我们需要检查服务器上是否存在文件。我们可以通过简单的头部请求来实现。以下是相同
的示例代码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();