Javascript 如何将请求负载从html表单发送到JavaRESTAPI?

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函数

我一直在开发一个工具,其中我需要通过HTML表单提交数据。此数据将通过香草JavaScript中的
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”。