I’m trying to send XML doc to server from client. But when server get a XML doc. It’s always empty. Here is my jquery function. It’s send XML to server:
var str = '<?xml version="1.0" encoding="UTF-8"?><foo><bar>Hello World</bar></foo>';
var xmlData = strToXml(str); // convert string to xml
console.log($.isXMLDoc(xmlData)); // return true
$.ajax({
url: 'foo.bar'
, processData: false
, data: xmlData
, success: function(response){
console.log(response);
}
, error: function(response) {
console.log(response);
}
});
And server side code. It’s recieve a xml doc.
try {
HttpServletRequest request = ServletActionContext.getRequest();
InputStream is = request.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String line = "";
System.out.println(reader.read()); // return -1
while((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
Can you guys put some working example? And thank you for any advice and post.
You are missing the “type” property in your ajax request. The default value if you don’t provide it is GET.
Also there’s no need to convert your data to XML Dom when you are sending it over the wire, unless you want to do something with it on client side: