com.google.gwt.user.client.Window 如何从answer中获取Http状态码?

com.google.gwt.user.client.Window How to get Http status code from answer?

我使用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.

我怎样才能做到这一点?

要实现所需的功能,首先我们需要检查服务器上是否存在文件。我们可以通过简单的 head 请求来做到这一点。这是 same

的示例代码
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();