2

使用 GWT,我正在从我无法控制的服务器加载图像。目前,我使用 GWT new Image( url),然后使用 ImageHandlers 和 ErrorHandlers 来捕捉发生的事情并将图像放入我的缓冲区和 DOM 中。然后我使图像顺序可见以动画处理过程。但是现在我需要更多信息,我需要知道错误代码,例如服务器为图像返回的 eg304,并且我还需要获取标头响应属性“Last-modified”。对于 304,我知道稍后当服务器创建一个我认为我可以管理的新版本(具有完全相同的 url)时,我需要重新提交请求,但是它将有一个新的“最后修改”,我需要知道那个日期时间。通过使用 new Image(url),我让浏览器进行加载,但我不知道如何获取加载的详细信息。

Q1:有没有办法从图像中提取更多信息?GWT Image 似乎只是包装了一个 JS 对象。我查看了 Firefox 控制台网络,但也没有看到太多细节。是否在 DOM 树中获得(或没有)时忘记了 Last-modified 和错误代码。

如果 Q1 的答案是否定的,则信息已消失或无法访问,..

Q2:我是否需要停止使用浏览器来获取图像并使用 XmlHttpRequest 来完成,然后大概我可以访问响应代码和标头属性。SOP 不是问题。但是我如何从 Response OutputStream 中得到一个 Image 呢?我必须对它进行 Base64 编码还是有更好的方法?图像帮助的其他非 url 构造函数之一,比如 Image(Element) 或 Image(ImageResource)。那么问题就变成了如何将响应流转换为 Element 或 ImageResource?

注意:这个另一个问题'如何打印为什么图像无法加载的错误消息?' 是相关的,但没有得到答案。

4

1 回答 1

0

必须使用 HTTP 客户端(GWT 内置RequestBuilder)来获取错误代码并以流形式获取响应。您也可以尝试使用本机 JS 获取错误代码,使用此处描述的方法

于 2013-09-08T22:46:49.413 回答