1

我对 ajax 概念很陌生,我想提交表单而不刷新页面

阿贾克斯

function ajaxFunction() {
  if(xmlhttp) { 
   var txtname = document.getElementById("txtname");
    xmlhttp.open("POST","Listservlet",true);
    xmlhttp.onreadystatechange  = handleServerResponse;
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.send("txtname=" + txtname.value);
  }
}

function handleServerResponse() {
   if (xmlhttp.readyState == 4) {
     if(xmlhttp.status == 200) {
       document.fname.message.innerHTML=xmlhttp.responseText;
     }
     else {
        alert("Error during AJAX call. Please try again");
     }
   }
}

JSP

<form name="fname" action="Listservlet" method="post">
<input type="text" name="txtname" id="txtname" />
<input type="button" value="Submit"  onclick="ajaxFunction();" />
<div id="message"></div>
</form>

小服务程序

public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
  String name = null;
  PrintWriter out = response.getWriter();
  if(request.getParameter("txtname") != null) {
   name = request.getParameter("txtname");
  }
                else {
                       name = "";
                }
           out.println("You have successfully made Ajax Call:" + name);
 }

我从谷歌得到的这个 ajax 想法,bt 它不起作用,点击按钮时,什么也没显示。请帮我。

4

2 回答 2

2

代替

 document.fname.message.innerHTML=xmlhttp.responseText;

经过

document.getElementById("message").innerHTML=xmlhttp.responseText;
于 2012-07-02T11:16:22.530 回答
1

找出问题所在的一般步骤

  • 使用浏览器调试器判断ajax请求是否成功发送;
  • 调试您的接收 Servlet,以判断请求是否实际传递到您的 Servlet;
  • 使用浏览器调试器来判断是否需要响应文本;

    对于您的问题,我认为您需要更改 document.fname.message.innerHTML=xmlhttp.responseText;

    document.getElementById("message").innerHTML = xmlhttp.responseText;

    还记得关闭你的输出

  • 于 2012-07-02T11:10:29.557 回答