我使用 com.google.gwt.user.client.Window.open(String url, String name, String features)
从服务器下载文件。
当服务器的结果为 200 OK
时,一切都正常 - 我正在获取文件。
当服务器的结果与 200 OK
不同时,就会出现问题,例如:500 Internal Server Error
或 401 Unauthorized
。然后我得到了丑陋的 Tomcat 错误页面,其中包含有关问题的信息。
我想捕获与 200 OK
不同的每个状态代码并显示我自己的信息或重定向到 f.e. 登录页面
。
我怎样才能实现这个目标?
最佳答案
为了实现所需的功能,首先我们需要检查服务器上是否存在文件。我们可以通过简单的头部请求来做到这一点。这是相同的示例代码
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();
关于java - com.google.gwt.user.client.Window 如何从答案中获取Http状态代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36444677/