Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jQuery如何使用JSON字符串数据构造Ajax POST请求_Java_Javascript_Jquery_Http Post_Apache Httpclient 4.x - Fatal编程技术网

Java jQuery如何使用JSON字符串数据构造Ajax POST请求

Java jQuery如何使用JSON字符串数据构造Ajax POST请求,java,javascript,jquery,http-post,apache-httpclient-4.x,Java,Javascript,Jquery,Http Post,Apache Httpclient 4.x,我正在尝试使用HttpClient v4.1从Java servlet访问网站端点。据我所知,端点需要一个post请求,其中包含JSON字符串中的参数。我之所以这么说,是因为我有一些jquery生产代码示例,可以成功地向端点发出请求。看起来是这样的: $.ajax({ type: "POST", url: "some/u/r/l", data: "{'keyA':'valueA','keyB':'valueB','keyC':'valueC'}", content

我正在尝试使用HttpClient v4.1从Java servlet访问网站端点。据我所知,端点需要一个post请求,其中包含JSON字符串中的参数。我之所以这么说,是因为我有一些jquery生产代码示例,可以成功地向端点发出请求。看起来是这样的:

$.ajax({
    type: "POST",
    url: "some/u/r/l",
    data: "{'keyA':'valueA','keyB':'valueB','keyC':'valueC'}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    ...

因此,我试图使用HttpClient从Java servlet复制此行为,但我从服务器获得了不明确的500,因此我必须错误地创建请求。有人能告诉我jQuery在上面的代码中到底做了什么吗。我知道使用JS对象作为数据参数的值会将相应的键-值对作为URL参数添加到请求中,但是在上面的示例中,JSON字符串会发生什么变化?它去哪里了?

需要将JSON字符串添加到请求正文中。对于HttpClient 4.1,这类似于:

request.setEntity(new StringEntity(json, "application/json", HTTP.UTF_8));

现在所有浏览器都有开发工具,允许您检查HTTP流量。在执行jQuery post时,尝试点击F12并查看浏览器中的“网络”选项卡。您应该看到原始HTTP POST请求。