动态生成的图像,使用POST获取

mad*_*ina 5 javascript java ajax prototypejs

我需要在JSP中动态加载图像.我试过了 <img src="servletUrl?p1=x&p2=y"/>,但问题是URL太长而无法使用GET发送.

我现在正在进行POST通话.从servlet我生成一个饼图图像,基于我发送的参数.图像不会保留,因此我无法返回类似"images/image1.jpg"的内容并将其设置为图像的src.

所以我将图像作为字节数组返回并设置适当的图像内容类型.

我的问题是:一旦我在javascript中有图像字节,我如何在相应的img标签中显示它们?

这是我的AJAX电话:

new Ajax.Request(url, {
        method: 'post',
        parameters: params,
        onComplete: function(request) {
                    alert(request.responseText);      
        }
});
Run Code Online (Sandbox Code Playgroud)

And*_*eas 2

我自己还没有尝试过,但它应该有效。您可以创建图像并使用dataUrl设置其 src 。您必须将其转换byte[]为 Base64 编码的字符串才能正常工作。

new Ajax.Request(url, {
        method: 'post',
        parameters: params,
        onComplete: function(response) {
            var img = new Image();
            img.src = "data:image/png;base64," + response;

            document.body.appendChild(img);
        }
});
Run Code Online (Sandbox Code Playgroud)