Jquery 如何使用ajax从servlet发送图像?
我试图发送一个字符串,在qr图像中进行编码,并返回同一页上的图像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" /> <
<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" />');
});
});