我看ajax前台接收图片要用到responseStream,这个不会用,回传字符串(responseText)这个能接收到,但是如果后台向前台输出图片流,前台应该在怎么接收?谢谢解答

解决方案 »

  1.   

    不一定要用到 responseStream,可以传过来img的URL地址,然后在进行显示,一般都这样也快
      

  2.   

    img的url地址是什么意思,后台是java文件,假设叫cdb.java,那么用document.getElementById("imgmap").src="cdb";来更新图片(这样前台不更新,没反应。)?还是把图片存在服务器上,再从服务器上读?
      

  3.   

    前台不能使用responseStream,高版本的浏览器你可以使用base64格式
      

  4.   

    前台不能接收流,用ajax前台只能接收到字符串,像1楼说的那样,你可以用Ajax在前台接收要显示的图片的地址,然后将img控件的src属性设置成图片地址!
      

  5.   

    我的后台java程序从地图服务器上生成图片,然后把这图片输出到前台,原来我在前台用这种方式向后台提交数据document.all.imgmap.src="cdb?toolType=3" + "&ptx=" + ssxx + "&pty=" + ssyy;但是这样页面会刷新,我看到ajax能无刷新,我是这样写的:
    var url="cdb?toolType=3" + "&ptx=" + firx + "&pty=" + firy;
    xmlhttp.open("GET",url,true);
    xmlhttp.onreadystatechange=kk;
    xmlhttp.send(null);
    function kk()
    {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)   
    {
     document.getElementById("imgmap").src="cdb";//这样接收不到图片,还是原来的图片不变。
    }
    }
    <div id="imp"  style="width:800px; height:500px; border:1px solid #000; overflow:hidden;"> 
    <img id="imgmap" src="cdb" > 
    </div>
    页面加载时,能收到图片,但是用ajax方式向后台传输数据时,我不知道前台应该怎么接收后台传来的图片。。
      

  6.   

    前台只能接收图片地址或者base64格式的字符串。如果是地址。 document.getElementById("imgmap").src="cdb?toolType=3" + "&ptx=" + ssxx + "&pty=" + ssyy
    是不会刷新界面的你只是图片处理不是这个也页面的处理
      

  7.   

    但是我这个样写:document.getElementById("imgmap").src="cdb?toolType=3" + "&ptx=" + ssxx + "&pty=" + ssyy
    页面刷新了。浏览器窗口左下角有出现正在下载图片我觉得页面也不应该刷新啊。。难道其他地方错了?
      

  8.   

    “浏览器窗口左下角有出现正在下载图片”图片的加载的和页面的加载是异步的,所以,单独给页面增加img,或修改某个己存在的img的src属性,并不会造成页面的刷新
      

  9.   

    那就是页面除了图片部分其他的应该没有刷新,怎么能不显示下面那个加载图片。。感觉跟刷新了似的。。
    再就是我用绝对路径写图片地址,怎么不显示
    <img id="imgmap" src="d:/23.png" alt="" > 这个不显示啊我是把图片先ctrl+v到工程里面用相对路径添加的。。
      

  10.   

    我问下,如果我是后台从地图服务器那边生成图片(我把地图服务器部署在了应用服务器上),然后输出到前台,那么用ajax提交数据和用document.getElementById("imgmap").src="cdb?toolType=3" + "&ptx=" + ssxx + "&pty=" + ssyy
    这种方式提交数据,是一个效果?(都不刷新页面,只刷新图片)
      

  11.   

     document.getElementById("img").src = 'CheckCode.ashx?aaa=' + new Date(); //验证码.ashx?aaa='+new Date(),后面加个问号浏览器会认为他是一个新地址,new Date()获取当前时间,每次点击时他都会产生一个不同的代码;
            }