Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否将表单数据提交到servlet并在不重新加载页面的情况下检索答案?_Javascript_Html_Ajax - Fatal编程技术网

Javascript 是否将表单数据提交到servlet并在不重新加载页面的情况下检索答案?

Javascript 是否将表单数据提交到servlet并在不重新加载页面的情况下检索答案?,javascript,html,ajax,Javascript,Html,Ajax,在网页上,我想向servlet提交表单数据和POST请求,接收答案并根据结果进行处理。页面不应重新加载。不幸的是,我对这类东西(HTML和JavaScript)不是很有经验 目前,我成功地获得了两个不成功的结果: 要么发送POST请求(由servlet正确处理),要么重新加载页面并显示普通XML结果 或者POST请求从不发送,JavaScript函数进行一些处理,但基本上没有结果 我从这一页上得到了这样做的想法: 具体而言: XMLHttpRequest对象是开发人员的梦想,因为您可以: 在不重

在网页上,我想向servlet提交表单数据和POST请求,接收答案并根据结果进行处理。页面不应重新加载。不幸的是,我对这类东西(HTML和JavaScript)不是很有经验

目前,我成功地获得了两个不成功的结果:

  • 要么发送POST请求(由servlet正确处理),要么重新加载页面并显示普通XML结果
  • 或者POST请求从不发送,JavaScript函数进行一些处理,但基本上没有结果
  • 我从这一页上得到了这样做的想法:

    具体而言:

    XMLHttpRequest对象是开发人员的梦想,因为您可以:
    在不重新加载网页的情况下更新网页

    目前我没有这样做


    我有这样一个HTML表单:

    <form id="editform" 
        action="myAction" 
        method="post" 
        onSubmit="return submitForm(this);">
    
      ....
    
      <input type="hidden" name="operation" value="doSomething" />
      <input type="image" src="images/button.png" />
    </form>
    
    function submitForm(oFormElement)
    {
      var xmlHttpRequest = new XMLHttpRequest();
      xmlHttpRequest.open (oFormElement.method, oFormElement.action, true);
      xmlHttpRequest.onload = function()
      { 
        if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) 
        {
          alert (xmlHttpRequest.responseXml);
        }
        else
        {
          alert ("Failed!");
        }
      };
      xmlHttpRequest.send (new FormData (oFormElement));
      return false;
    }
    
    如果JavaScript返回
    false
    ,那么我在浏览器web开发人员控制台中看不到任何POST请求,而且servlet也从未收到任何请求。警报框打印未定义的内容(情况2)

    如果JavaScript返回
    true
    则POST请求确实被发送,并返回正确的结果,但页面被重新加载(案例1)


    在肯定if子句中,我希望处理结果XML并相应地设置HTML元素。

    您应该使用jQuery$。ajax

    例如:

    $.ajax({
    url: "myUrl", // url to make request
    type: "POST", // method of request
    data: {key: "value"}, // Here comes your data
    success: function(response){ // If request is made successful
        //  Here you can handle response from your request
        console.log(response)
    },
    error: function(xhr){// If request has faced issue
        console.log(xhr.responseText)
    }});
    

    必须使用
    xmlHttpRequest.responseXml
    而不是
    xmlHttpRequest.responseXml
    。另外,似乎ormelement.action的
    并没有像我希望的那样提取我的
    元素…

    我真的不知道如何使用jQuery,但我将代码放在
    标记之间-它似乎不起作用。POST请求已发送,但页面已重新加载。我更喜欢不使用jQuery的解决方案。如果只是将其复制并粘贴到脚本标记中,则无法正常工作。这是一个关于如何使用它来提出请求的示例。您应该在函数中插入$.ajax请求,并在单击按钮时调用它。