Image 如何通过xhr接收图像作为响应?

Image 如何通过xhr接收图像作为响应?,image,dojo,xmlhttprequest,Image,Dojo,Xmlhttprequest,如何通过dojo.xhr接收图像 我有一个数据网格,点击任意一行, 我想从服务器上获取一个映像(取决于所选的行)。图像将作为对话框弹出 我看不到任何handleAs参数适用于此 目前我有两个选择 1) 在对话框中定义一个,onClick事件显示对话框,并将src参数设置为服务器映像返回链接(这看起来不是异步的) 2) 使用Base64编码图像,作为json传递。(还有什么?如何在浏览器中将其转换回图像?) 我对以上任何一项都不满意 请建议。谢谢 编辑 2) 续。通过设置标记的src=“data:

如何通过
dojo.xhr
接收图像

我有一个
数据网格
,点击任意一行, 我想从服务器上获取一个映像(取决于所选的行)。图像将作为对话框弹出

我看不到任何
handleAs
参数适用于此

目前我有两个选择

1) 在对话框中定义一个
onClick
事件显示对话框,并将
src
参数设置为服务器映像返回链接(这看起来不是异步的)

2) 使用
Base64
编码图像,作为json传递。(还有什么?如何在浏览器中将其转换回图像?)

我对以上任何一项都不满意

请建议。谢谢

编辑


2) 续。通过设置
标记的
src=“data:image/jpeg;base64,*deferredObj*”
属性,找到了一种实现此功能的方法,但对我来说,这并不是一种明显的方法。

您不应该对图像使用base64编码。IE对
数据:image
的支持较差


图像URL是正确的方法。解决方案1)更好。如果性能不好,请使用来改进它。

在构建网格结构时,请包含
格式化程序:myFunction
属性。然后使用
myFunction
调用dojo.xhrGet以获取图像。比如说:

grid = new dojox.grid.dataGrid({
        id: 'grid',
        structure: gridStructure
});
gridStructure = [
    {field: 'id', name: 'ID', formatter: myFunction}
];
myFunction = function(){
    dojo.xhrGet(
        //retrieve image here   
    );
}

谢谢分享你的想法和时间。我意识到XHR不是为二进制数据(如图像)设计的
我已经相应地更改了应用程序的设计。

感谢您指出
IE
data:image
的缺陷。我只专注于
FF
。但这两种方法对我来说都不明显。我觉得有更简洁的方法,比如设置mimetype
Content-Type=image/jpg
Http
-
Mimetypes
为此目的存在了大约15年。我的意思是,通过
xhr
发送图像是一项相当琐碎的任务,我不相信用
dojo
就不能做到这一点(以标准或至少简单的方式):(