【发布时间】:2014-09-29 22:08:59
【问题描述】:
我正在发送一个 POST 请求 cia cURL,在我的 Java 服务器中解析它时,没问题。
curl -H "Content-Type: application/json" -d '{"url":"http://example.com"}' http://example-server.com/pathtoserver
我正在通过以下方式获取 Java 中的请求:
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"}
但是当我通过 JQUERY AJAX 请求发送它时,我收到 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 与 AJAX 发布请求有什么本质上的不同吗?还是我格式错误?
【问题讨论】:
-
你读过 GET 吗?您肯定会使用 AJAX 发送 POST 请求
标签: java jquery ajax json servlets