AJAX POST 发送数据有2种方式: Form Data 和 Request Payload 。
Form Data 是我们大家接触最多的方式,数据格式都是:name=value&name2=value2&...
这次我们 POST 一个 JSON 数据体,该如何办? 答案:使用 Request Payload 方式。
上代码:
前面Ajax发送代码(使用jQuery):
$.ajax({
url: '',
type: 'POST',
contentType: 'application/json; charset=utf-8', // 很重要
traditional: true,
data: JSON.stringify({your json object}), // {"name":"zhangsan", "age": 28}
success: function(res, status, xhr) {
// your code ....
}
});
服务端接收代码(java):
HttpServletRequest req = ...
try {
BufferedReader reader = req.getReader();
StringBuilder sb = new StringBuilder();
char[] buff = new char[1024];
int len = -1;
while((len = reader.read(buff)) != -1) {
sb.append(buff, 0, len);
}
reader.close();
// example
System.out.println( sb.toString() ); // {"name":"zhangsan", "age": 28}
} catch(IOException e) {
// error
}