gpt4 book ai didi

java - Http 服务器(Vertx 上的 Java)没有获取 POST 参数

转载 作者:可可西里 更新时间:2023-11-01 16:04:35 25 4
gpt4 key购买 nike

我正在从客户端发送 ajax 请求,例如:

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
$(document).ready(function() {
$.ajax({
url: "http://192.168.1.74:8888",

type: "POST",
data: ({username: 'Bobby'})

});
})
</script>
</head>
<body>
</body>
</html>

我的 Http Server 是用 Java 写的,利用 vertx 是这样的:

public class Main extends AbstractVerticle {


@Override
public void start() throws Exception {


vertx.createHttpServer().requestHandler(new Handler<HttpServerRequest>() {
@Override
public void handle(HttpServerRequest request) {

System.out.println(request.getParam("username"));

}
}).listen(8888);

}
}

每次我运行客户端时,服务器都会写入控制台以便发送请求,但服务器说该值为空。我究竟做错了什么?如何读取从客户端发送的 POST 参数?

更新:

我找到了问题,但没有解决方案。如果我将 ajax 更改为从 POST 获取,那么它将出现。我如何使它适用于 POST 而不是 GET?与现在发生的事情相反?

干杯

最佳答案

我在处理我的项目时遇到了这个问题。我在客户端使用 Dojo。我设法通过在客户端和服务器端进行调整来解决这个问题。

客户:

var json = JSON.stringify({
"username": "Bobby"
});
request.post("yoururl", {
data: json,
headers: {
"Content-Type": "application/javascript"
}
});

显然,在服务器端,需要在处理代码之前调用方法 BodyHandler.create()

router.route(HttpMethod.POST, "yoururl").handler(BodyHandler.create());
router.route(HttpMethod.POST, "yoururl").handler(routingContext ->
{
String sectionType = routingContext.request().getParam("sectionId");
JsonObject j = routingContext.getBodyAsJson();
});

我希望这能解决您的问题。

关于java - Http 服务器(Vertx 上的 Java)没有获取 POST 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30251479/

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