JSP没有从Servlet接收AJAX响应

时间:2013-10-18 06:53:21

标签: javascript jquery ajax

我有一个简单的jsp页面,它向servlet发送ajax请求并等待响应。不幸的是,经过多次尝试后,它没有收到回复。正在传输ajax请求,但未收到响应。

截至目前,我的页面和文本框都有一个下拉列表。我试图在下拉列表的“onchange”事件的文本框中打印下拉列表中选择的值。 这是我的代码。对此有任何帮助都是非常受欢迎的。

JSP PAGE

 <script>            
 function ajaxrequest(){ return new XMLHttpRequest();}        
 function ac()
   {
     var myajaxrequest = new ajaxrequest();
     if(myajaxrequest==null){alert("AJAX NOT WORKING");}         
     else
       {
         alert("AJAX WORKING");                 
         var ind2=document.getElementById("dd1").value;
         myajaxrequest.onreadystatechange=connection;                   
         myajaxrequest.open("GET", "../ajaxservlet?dd1="+ind2,true );
         myajaxrequest.send(null);
       }
    }

 function connection()  
   {               
     if(myajaxrequest.readyState==4)  
        {  
          var x=myajaxrequest.responseText; 
          document.getElementById("result").innerHTML = x;
        }  
   }  
 </script>
 <body>
   <form id = "form1" name ="form1" >
      <select id="dd1" name="dd1" onchange= "ac()">
        <option>Please select </option>
        <option>ankur</option>
        <option>akshay</option>
      </select>
      <input type="text" id="result" name="result" /> 
   </form>
 </body>

SERVLET:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws     ServletException, IOException {

  System.out.println("hitting servlet");
  String abc = request.getParameter("dd1");
  System.out.println(abc);
  PrintWriter pw=response.getWriter();  
  response.setContentType("text/html");  
  pw.println(abc);
  }

下拉列表中选择的值将在控制台中打印,但不会传回。 谢谢你的时间。

2 个答案:

答案 0 :(得分:1)

myajaxrequestac()函数的本地版本,因为您使用了var关键字。您无法在connection()功能中访问它。

尝试在connection()内声明ac()功能。

使用XHR级别2,您只需将处理程序附加到readyState事件,而不是检查onload的状态。

顺便说一句,如果不支持原生XHR ajaxrequest()会抛出错误;它不会返回null。

答案 1 :(得分:0)

尝试全局初始化myajaxrequest