Ich versuche, eine Leinwand PNG zu einem Java-Servlet mit Ajax zu senden. Hier ist mein Javascript-Code:Wie Leinwand Leinwandbild an Java-Servlet mit Ajax zu senden?
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);
}
und das 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());
}
}
Das Problem ist, dass getParameter("annotationImage")
kehrt null
, und ich kann nicht verstehen, warum: Debugger-Browser kann ich siehe annotationImage
und sein Wert zwischen den Anfrageparametern, also bin ich sicher, dass es nicht Null ist, aber aus irgendeinem Grund wird der Parameter nicht vom Java Servlet empfangen.
http://stackoverflow.com/questions/3831680/httpservletrequest-get-json-post-data –