我使用 GWT 从我无法控制的服务器加载图像。目前,我使用 GWT new Image( url)
然后使用 ImageHandlers 和 ErrorHandlers 来捕获发生的事情并将图像放入我的缓冲区和 DOM 中。然后我使图像连续可见以激活该过程。但现在我需要更多,我需要知道错误代码,例如服务器为图像返回的 304,我还需要获取 header 响应属性“Last-modified”。对于 304,我知道我需要稍后在服务器创建一个我认为我可以管理的新版本(具有完全相同的 url)时重新提交请求,但是它将有一个新的“最后修改”,我需要知道日期时间。
通过使用 new Image(url),我让浏览器进行加载,但我不知道如何获取加载的详细信息。
Q1:有没有办法从图像中提取更多信息? GWT Image 似乎只是包装了一个 JS 对象。我查看了 Firefox 控制台网络,但也没有看到太多细节。 Last-modified 和错误代码在它进入(或不进入)DOM 树时被遗忘。
如果问题 1 的答案是否定的,则信息已消失或无法访问,..
问题 2:我是否需要停止使用浏览器获取图像并使用 XmlHttpRequest 执行此操作,然后大概我可以访问响应代码和 header 属性。 SOP 不是问题。但是我如何从 Response OutputStream 到 Image 呢?我必须对其进行 Base64 编码还是有更好的方法?图像帮助的其他非 url 构造函数之一,比如 Image(Element) 或 Image(ImageResource)。那么问题就变成了如何将响应流制作成 Element 或 ImageResource?
注意:这个其他问题' How to print error message of why image failed to load? ' 是相关的,但没有得到答案。
最佳答案
必须使用 HTTP 客户端 ( GWT has the built in RequestBuilder
) 获取错误代码并获取流式响应。您也可以尝试获取错误代码 with native JS, using the method described here .
关于javascript - 使用 GWT,如何加载图像并访问图像属性和 http 状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18688690/