【发布时间】:2017-05-12 14:53:38
【问题描述】:
我正在尝试使用 ajax 将画布 PNG 发送到 java servlet。 这是我的javascript代码:
function sendToServer(image){
$.ajax({
type: "POST",
url: "SaveAnnotation",
data: {
annotationImage: image
},
success: function(msg)
{
alert(msg);
},
error: function()
{
alert("Error connecting to server!");
}
});
}
function save() {
var dataURL = canvas.toDataURL();
sendToServer(dataURL);
}
还有 java servlet doPost():
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/plain");
try{
String img64 = request.getParameter("annotationImage");
byte[] decodedBytes = DatatypeConverter.parseBase64Binary(img64);
BufferedImage bfi = ImageIO.read(new ByteArrayInputStream(decodedBytes));
File outputfile = new File("saved_annotations/saved.png");
ImageIO.write(bfi , "png", outputfile);
bfi.flush();
out.print("Success!");
}catch(IOException e){
out.print(e.getMessage());
}
}
问题是getParameter("annotationImage")返回null,我不明白为什么:使用浏览器调试器我可以看到annotationImage和它在请求参数之间的值,所以我确定它不是空的,但是由于某种原因,Java Servlet 没有接收到该参数。
【问题讨论】:
标签: javascript java ajax servlets canvas