java - com.google.gwt.user.client.Window 如何从答案中获取Http状态代码?

标签 java gwt

我使用 com.google.gwt.user.client.Window.open(String url, String name, String features) 从服务器下载文件。

当服务器的结果为 200 OK 时,一切都正常 - 我正在获取文件。

当服务器的结果与 200 OK 不同时,就会出现问题,例如:500 Internal Server Error401 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/

相关文章:

javascript - GWT - 未触发 onClick

java - 创建对象数组时出现异常

java - 空指针异常 : null error

java - GWT 文本框编码和 RPC

java - 编译 GinjectorImpl.java 时,GWT 开发模式抛出 ArrayIndexOutOfBoundsException

image - 当我在 tomcat 上部署我的 gwt 应用程序并在 IE 中运行它时,资源包中的所有图像都会出现在屏幕上

java - 为什么Java找不到符号

java - 使用 Elasticsearch Java API 运行文本查询

带对话框保存文件的 Java 下载管理器

java - GWT 验证输入到文本框中的时间 - 将长类型结果转换为 24 小时格式时出错