gpt4 book ai didi

java - 使用ajax post将json从js发送到 Controller

转载 作者:行者123 更新时间:2023-12-03 12:30:34 24 4
gpt4 key购买 nike

我在将 json 对象从 javascript 发送到 java Controller 时遇到问题,

Ajax :

var xmlHttp = getXmlHttpRequestObject();
if(xmlHttp) {
var jsonObj = JSON.stringify({"title": "Hello","id": 5 });
xmlHttp.open("POST","myController",true);
xmlHttp.onreadystatechange = handleServletPost;
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlHttp.send(jsonObj);
}
function handleServletPost() {
if (xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
alert(window.succes);
}
}
}

我在Java中尝试过的:

public void process(
final HttpServletRequest request, final HttpServletResponse response,
final ServletContext servletContext, final TemplateEngine templateEngine)
throws Exception {

String jsonObj = request.getParameter("jsonObj");
}

它们都是空的。

我尝试阅读相关帖子和多种发送数据的方式,但结果相同。我不知道如何使用Jquery进行ajax,所以我主要寻找js解决方案。

有人可以告诉我我错过了什么吗?我花了大约三个小时试图弄清楚

最佳答案

要通过 POST 请求发送 JSON,您必须在 doPost 方法中读取请求的正文。这是一种方法:

protected void doPost(HttpServletRequest hreq, HttpServletResponse hres)
throws ServletException, IOException {
StringWriter sw = new StringWriter();
IOUtils.copy(hreq.getInputStream(), sw, "UTF-8");
String json = sw.toString();

然后您必须解析 JSON。例如,这可以使用 Google gson 来完成。 .

假设您有一个带有公共(public)参数 idtitle 的类 Thing,这将是

Gson gson = new GsonBuilder().create();
Thing thing = gson.fromJson(json, Thing.class);
int id = thing.id;
String title = thing.title;

当然,除了 gson 之外,还有其他解决方案来解析 JSON,但您必须来解析它。

关于java - 使用ajax post将json从js发送到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23950867/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com