请高手来解决! - Web 开发 / Ajax
我在后台得到的是图片二进制文件,在前台为啥我得不到图片输出,下面那段有错呢?
getimage.js:
<script language="javascript" type="text/javascript">
var xmlHttp = false;
try {
xmlHttp = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
xmlHttp = false;
}
}
}
if (!xmlHttp)
alert("Error initializing XMLHttpRequest!");
function LoadImage()
{
var url="getimage.asp?ID="+ID+"&stamptime="+new Date().getTime(); //这里用new Date().getTime()可以使刷新图片
var xmlHttp = GetxmlHttp();
xmlHttp.onreadystatechange=function event()
{
if(xmlHttp.readystate==4)
{
if(xmlHttp.status==200)
{
document.getElementById.src=url;
}
}
}
xmlHttp.open("get",url);
xmlHttp.send(null);
}
getimage.asp:
<%
dim sql,rs,conn
response.expires=-1
sql= "select top 6 * from [ladladypic] order by id desc"
set conn=Server.CreateObject("ADODB.Connection")
conn.open "PROVIDER=microsoft.jet.oledb.4.0;DATA source="& server.MapPath("asp/ladladypic.mdb")
set rs = Server.CreateObject("ADODB.recordset")
rs.Open sql, conn,1,3
do while not rs.eof
response.contenttype="image/*"
response.clear
response.binarywrite rs("imagedata").getchunk(8000000)
response.flush
rs.movenext
loop
response.end
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
HTML:
<div id="picContainer">
<img style="position:absolute; float:left; left: 143px; top: 223px;" src="url" width="200" height="200" border="0" >
</div>
------解决方案--------------------
1,函数起名不要用event这个名字。
2,就你这个应用来说,没有必要用AJAX呀。
------解决方案--------------------
ajax请求返回的数据不支持image类型的,也不是不支持,返回的都是2进制代码,在浏览器安全范围内你没办法用js生成图片
如果直接加载图片,可以使用Image对象预加载就行了
eg
JScript code
var img=new Image();
img.src=="getimage.asp?ID="+ID+"&stamptime="+new Date().getTime(); //这里用new Date().getTime()可以使刷新图片
img.onload=function(){/*图片加载完成后的代码*/}