Javascript 如何将请求负载从html表单发送到JavaRESTAPI?
我一直在开发一个工具,其中我需要通过HTML表单提交数据。此数据将通过香草JavaScript中的Javascript 如何将请求负载从html表单发送到JavaRESTAPI?,javascript,java,html,json,rest,Javascript,Java,Html,Json,Rest,我一直在开发一个工具,其中我需要通过HTML表单提交数据。此数据将通过香草JavaScript中的XMLHttpRequest()发送。 这反过来将由JavaRESTAPI(基于Jersey)接收。 在Java中的@POST函数中,我接受参数@Context-HttpServletRequest 我能够通过邮递员发送请求负载(JSON格式)。我在互联网上做了很多研究,但不知道如何让我的HTML表单发送请求负载。我不想使用@FormParam,因为表单数据总是不同的,参数也不是固定的 Java函数
XMLHttpRequest()
发送。
这反过来将由JavaRESTAPI(基于Jersey)接收。
在Java中的@POST
函数中,我接受参数@Context-HttpServletRequest
我能够通过邮递员发送请求负载(JSON格式)。我在互联网上做了很多研究,但不知道如何让我的HTML表单发送请求负载。我不想使用@FormParam
,因为表单数据总是不同的,参数也不是固定的
Java函数:
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.APPLICATION_JSON)
public Response create(@Context HttpServletRequest request) {
Integer userId = null;
try {
String content = readPostBody(request);
System.out.println("Content: " + content);
User user = mapper.readValue(content, User.class);
userId = dao.create(user);
} catch (ServletException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (userId == null) {
return Response.status(500).entity("User could not be created!!").build();
} else {
return Response.status(200).entity(userId.toString()).build();
}
}
HTML格式:
<div class="container">
<div class="row" style="margin-top: 50px;">
<form action="" method="post" id="form-data">
<input type="text" id="firstName" placeholder="First Name"><br>
<input type="text" id="lastName" placeholder="Last Name"><br>
<button class="btn btn-submit" onclick="createUser()">Submit</button>
</form>
</div>
</div>
提交
JavaScript:在这里尝试了几件事,但这就是我所寻找的解决方案
有谁能建议一些更有效的方法吗?否则,我将不得不修改REST API来读取每个参数,我认为这些参数不是很好的编码实践。您可以向我们展示您的HTML表单吗?为什么不使用jquery ajaxpost@ScaryWombat事实上,我一直在尽量避免jQuery。因此试图通过XMLHttpRequest解决这个问题。您对可以使用哪个版本的JavaScript有限制吗?如果您可以查看工作邮递员请求中的获取API,您是否使用了“表单数据”或“x-www-form-urlencoded”选项?HTML表单提交的结果是“x-www-form-urlencoded”。