【发布时间】:2011-04-12 21:56:44
【问题描述】:
我正在使用 XMLHttpRequest 从服务器获取图像(从第三方服务器小程序本地运行)
代码的简化版如下所示。
图像以 JPEG 格式返回,返回的标头显示“content-type= image/jpg”。我可以通过 Firebug for Firefox 查看信息。
但是,我无法在网页上显示实际图像,因为它是从服务器返回的图像数据,而不是图像位置的 uri。
从返回的数据中显示此图像的正确方法是什么?我应该使用<span> 标签还是<img> 标签还是<magical-show-image-from-data> 标签?
function getXML(url, postData, requestStateChangeHandler){
if(window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{//Code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = requestStateChangeHandler;
xmlhttp.open("POST", url, true);
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
xmlhttp.setRequestHeader('Cache-Control', 'no-cache');
xmlhttp.send(postData);
}
function requestStateChangeHandler(){
if (xmlhttp.readyState == 4)
{
if(xmlhttp.status == 200)
{
document.getElementById('results').innerHTML = xmlhttp.responseText;
}
else
dump("Error loading page\n");
}
}
【问题讨论】:
-
哇。您必须使用
data:URI,它在 IE 系列中会有各种限制(在 IE -
如果您正在为图像设置正确的标题,并转储原始图像数据,只需使用 src 属性就可以正常工作。文件扩展名并不重要。
-
将
<image>的src属性设置为url也适用于动态内容,但仅适用于GET 请求,不适用于POST :(
标签: javascript html xml image dom