0

ajax リクエストをサーブレットに送信し、応答を待つ単純な jsp ページがあります。残念ながら、何度も試行しても応答がありません。ajax リクエストは送信されていますが、応答が受信されていません。

現在、ページにドロップダウンとテキストボックスがあります。ドロップダウンで選択した値を、ドロップダウンの「onchange」イベントでテキストボックスに出力しようとしています。これが私のコードです。これに関するヘルプは大歓迎です。

JSPページ

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

サーブレット:

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);
  }

ドロップダウンで選択された値はコンソールに出力されますが、送信されません。御時間ありがとうございます。

4

2 に答える 2

1

myajaxrequestキーワードac()を使用したため、関数に対してローカルです。var関数内ではアクセスできませんconnection()

connection()関数ac()自体を宣言してみてください。

のステータスをチェックする代わりに、XHR レベル 2 を使用して、ハンドラをイベントreadyStateにアタッチするだけです。onload

ところで、ネイティブXHRがサポートされていない場合ajaxrequest()、エラーがスローされます。null は返されません。

于 2013-10-18T07:03:02.300 に答える