Java 如何格式化AJAX POST请求与cURL?
我正在发送一个POST请求,当在Java服务器中解析它时,一切正常 curl-H“内容类型:application/json”-d'{“url”:“}” 我通过以下方式获取Java中的请求:Java 如何格式化AJAX POST请求与cURL?,java,jquery,ajax,json,servlets,Java,Jquery,Ajax,Json,Servlets,我正在发送一个POST请求,当在Java服务器中解析它时,一切正常 curl-H“内容类型:application/json”-d'{“url”:“}” 我通过以下方式获取Java中的请求: StringBuilder buffer = new StringBuilder(); BufferedReader reader = request.getReader(); String line; while ((line = reader.readLine()) != null) { bu
StringBuilder buffer = new StringBuilder();
BufferedReader reader = request.getReader();
String line;
while ((line = reader.readLine()) != null) {
buffer.append(line);
}
String data = buffer.toString();
if (logger.isInfoEnabled()) {
logger.info("Data grabbed for POST data: " + data);
}
日志语句是:
2014-09-29 16:29:19,153 [INFO] [pool-16-thread-16] LOG - Data grabbed for POST data: {"url":"http:example.com"}
但是,当我通过jqueryajax请求发送它时,会得到一个JSONException错误。我是否格式化了请求
$('#validate').click(function() {
alert($('#url').val());
console.log($('#url').val());
$.ajax(
{url: "/pathtoserver/",
type: "POST",
data: {url:$('#url').val()},
success: function(data) { handleValidateResponse(data); console.log(data); }
});
});
日志还指出:
2014-09-29 16:27:08,145 [INFO] [pool-16-thread-14] LOG - Data grabbed for POST data: url=http%3A%2F%2Fexample.com
URL现在已被编码,并且不再像第一个那样使用大括号({URL:…})的JSON对象,而是显示“URL=…”
cURL和ajaxpost请求有什么本质上的不同吗?还是我的格式有问题 您需要手动将对象字符串化为JSON。否则,jQuery会将对象转换为一个键/值对字符串。我还想添加
contentType:“application/json”
只是为了安全起见:
$.ajax(
{url: "/pathtoserver/",
type: "POST",
contentType: "application/json",
data: JSON.stringify({url:$('#url').val()}),
success: function(data) { handleValidateResponse(data); console.log(data); }
});
你读过GET的书吗?您肯定是在用AJAX发送POST请求