使用GWT,我从一个我不能控制的服务器加载图像。目前,我使用GWT,然后使用ImageHandlers和ErrorHandlers来捕获发生了什么,并将图像放在我的缓冲区和new Image( url)
中。然后,我使图像连续可见,以使过程具有动画效果。但现在我需要更多,我需要知道错误代码,例如,服务器为图像返回的304,我还需要获取头响应属性'Last-modified‘。对于304,我知道我需要稍后重新提交请求,当服务器创建了一个我认为我可以管理的新版本(具有完全相同的DateTime )时,但它将有一个新的'Last-modified‘,我需要知道该url。通过使用新的图像(Url),我让浏览器进行加载,但我不知道如何获取加载的细节。
问1:有没有办法从图片中提取更多信息?GWT Image只是看起来包装了一个JS对象。我查看了Firefox控制台-网络,但也没有看到太多细节。是最后修改的,并且在它进入(或没有) DOM树时忘记了错误代码。
如果对Q1的回答是no,则信息已丢失或无法访问,..
Q2:我是否需要停止使用浏览器获取图像,并使用XmlHttpRequest获取图像,然后我可能可以访问响应码和标头属性。SOP不是问题。但是,我如何才能从对图像的响应OutputStream中获得呢?我必须对其进行Base64编码吗?还是有更好的方法?图像的其他非url构造器是否会提供帮助,比如图像(Element)或图像(ImageResource)。那么问题就变成了如何将响应流转换为元素或ImageResource?
注意:另一个问题'How to print error message of why image failed to load?‘是相关的,但没有得到答案。
发布于 2013-09-09 06:46:49
获取错误代码和以流的形式获取响应必须使用HTTP客户端(GWT has the built in RequestBuilder
)来完成。您还可以尝试获取错误代码with native JS, using the method described here。
https://stackoverflow.com/questions/18688690
复制相似问题