Jquery 如何使用ajax从servlet发送图像?

Jquery 如何使用ajax从servlet发送图像?,jquery,ajax,servlets,Jquery,Ajax,Servlets,我试图发送一个字符串,在qr图像中进行编码,并返回同一页上的图像 <form action="qrservlet" method="get"> <p>create QR Code</p> <input type="text" name="qrtext" /> <input type="submit" value="Generate QR Code" /> <

我试图发送一个字符串,在qr图像中进行编码,并返回同一页上的图像

<form action="qrservlet" method="get">
    <p>create QR Code</p>
        <input type="text" name="qrtext" />     
        <input type="submit" value="Generate QR Code" />        
    </form>
当我尝试这个时,它会返回一堆符号

这是我的servlet

String qrtext = request.getParameter("qrtext");

        ByteArrayOutputStream out = QRCode.from(qrtext).to(
                ImageType.PNG).stream();

        response.setContentType("image/png");
        response.setContentLength(out.size());

        OutputStream outStream = response.getOutputStream();

        outStream.write(out.toByteArray());

        outStream.flush();
        outStream.close();

从AJAX请求返回图像url

然后使用下面的代码

$(document).ready(function () {
    $("#submit").click(function () {
        $.ajax({
            type: "GET",
            url: "qrservlet",
            data: {
                "qrtext": "www.mypage.com"
            },
            success: function (result) {
                $("#content").html('<img src="'+result+'" >'); //changed here
            }
        });
    });
});

要显示图像,您需要一个html格式的img标记。img标签显示该图像的目的是从服务器获取数据。这导致了这样一个事实,即不需要对服务器执行典型的ajax调用,然后显示结果,但只需将img标记呈现到文档中:

$(document).ready(function () {
    $("#submit").click(function () {
       $("#content").html('<img src="qrservlet?qrtext=www.mypage.com" />');
    });
});

二维码是什么样子的?我对ajax还很陌生,你说返回url是什么意思?返回的url不是结果吗?我需要编辑servlet的发送方式吗?我想我真正的问题是,我不太明白表单是如何如此简单地工作的,ajax调用正在返回奇怪的符号。即使添加了图像tag@user2780385是的,您需要编辑servlet,并将其设置为返回图像url。当我使用表单时,这是返回的url MayPage/qrservlet?qrtext=www.yahoo.com但如果图像存储在本地文件系统中,这将不起作用,假设path=C:\myLocalDirectory\myImage.png$content.html不显示图像。
$(document).ready(function () {
    $("#submit").click(function () {
       $("#content").html('<img src="qrservlet?qrtext=www.mypage.com" />');
    });
});