当前位置: 首页 > 知识库问答 >
问题:

JSP Ajax表单提交到servlet put方法不起作用

赫连冠玉
2023-03-14

我让troulbe通过jsp页面上的ajax函数将path参数输出到servlets doput方法。

我的使用Ajax的jsp页面:

    <form id="user-form">
    <table>
        <tr>
            <td> User id:</td>
            <td><input type="text" name="name" id="name"/></td>
        </tr>

    </table>
    <input type="submit" value="Submit"/>
</form>



<script>

var form = $('#user-form');

form.submit(function()
{
    $.ajax({
        url: 'TestServlet',
        data: form.serialize(),
        type: 'put',
        success: function(data){ 
            console.log(data);
        }
            });   
       });
protected void doPut(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    //System.out.println(request);
    System.out.println(request.getParameter("name"));
    String resourceBaseURL = "http://localhost:8080/TEST/webapi/orders/";
    String requestedOrder = request.getParameter("name");
    URL url;        
    HttpURLConnection con;
    String resultInXml = "";

    System.out.println("DoPut Called");
    // try to create a connection and request XML format
    try {

        ObjectFactory objFactory = new ObjectFactory();

        Car car = objFactory.createCar();
        car.setName(requestedOrder);
        url = new URL(resourceBaseURL + requestedOrder);
        con = (HttpURLConnection) url.openConnection();
        System.out.println(url);
null
DoPut Called
http://localhost:8080/TEST/webapi/orders/null
Put

我有get和post方法,因为它们在form action和method属性中以常规方式发送到servelt。

就我所知,Put和delete只能通过ajax或JQuery来完成,我似乎无法理解。

我已经在邮递员身上测试了这个方法,它非常有效。

我真的被困在这个问题上,任何帮助都将非常感谢。

共有1个答案

太叔俊侠
2023-03-14

我想知道在声明“form”变量时,表单是否真的加载到了DOM中。尝试在DOM ready中包装jquery代码,以确保页面的所有元素都已就绪:

$(document).ready(function() {

  var $form = $('#user-form');

  $form.submit(function(event) {

    event.preventDefault();

    var data = $form.serialize();
    console.log(data);

    $.ajax({
      ...
    });

  });
}
 类似资料:
  • 问题内容: 我正在尝试通过AJAX提交表单,而不是使用常规的POST提交。HTML只是一个标准格式,我的jQuery代码如下: (基于此答案) 我从Submit函数返回false,但是表单仍在提交,我不知道为什么。没有收到任何Firebug错误。 问题答案: 如果html设置正确,则您的代码可以正常工作。这是我的测试html(使用php),因此您可以将其与自己的进行比较。

  • 问题内容: 我正在尝试仅在成功验证后提交表格。验证适用于必填项,但不适用于ng-minlength 表单输入无效,但仍在提交表单。 http://jsfiddle.net/pMMke/9/ 我究竟做错了什么。 我不想使用提交按钮禁用方法。 问题答案: 这是您做错的事情:您正在混合使用两个概念Angular验证器 和 HTML5验证器。 在 需要 HTML5验证,例如,规定: 如果存在,它指定提交表

  • 我无法获取“remember-me”复选框值(不存在获取400个必需的布尔参数“remember”) HTML表单

  • 问题内容: 我的页面上有一个下拉菜单,在这里。抱歉,格式化-引导程序: 当我直接加载并且下拉列表初始化时,此代码可以正常工作,但这不是我需要代码工作的方式。 用户开始; 此页面从用户那里收集一堆数据 并将 其 返回 给。 一旦用户选择执行操作,此代码将运行: ajax调用正常工作,并将从中返回的数据加载到div中。它按预期传递数据。加载到DIV 时唯一不起作用的是下拉菜单。我需要了解我在做错什么导

  • 表单提交不起作用。当我在弹出窗体中单击更新按钮时,页面将重新加载,数据不会更新 这是脚本$(文档)。关闭('click','updatepro')$(文件)。在('click','updatepro',function()上{ }); 这是我的控制器公共功能更新(请求$Request,$id){ 这是route::post('/update','GetdataController@update')

  • 问题内容: 我正在将旧的html页面从jQuery迁移到Angular,它包含一些带有的老式表格。当我用指令丰富页面时,旧表格停止工作(我的意思是当您按下按钮时什么也没发生)。 我搜索了此问题并也扫描了Angular文档,但似乎没有人提交表单了。 任何有关如何在不进行大量按键操作的情况下再次使这些形式重新生活的建议,将不胜感激。 当前该表单具有以下标记: 我清除的所有jQuery代码都从Angul