1

ajax/jquery.(method =post) を使用して、動的に生成されたフォーム データを投稿しようとしています。

サーブレットで request.getParameterNames を使用して、送信されたデータ (コンソールに表示) を取得できますが、1 回だけです。私のサーブレットは、リクエストパラメータをコンソールに表示した後、ブラウザにテキストを表示します。

戻るボタンをクリックしてフォームに戻って再送信するか、フォームを更新して再送信すると、フォームは引き続きサーブレットを呼び出しますが、request.getParameterNames はフォーム データをまったく取得しません。

ajax コード

    $('#submit').click(function(e){  
 e.preventDefault();
  alert('got here');
  $.ajax({   
    type: "POST",
    url: 'Surveyoutput',
    data: $("#form1").serialize(),  
    dataType: "html",
    success: function(data, status, xhttp) {
        if ( data ) { alert ('Got Data'); } else { alert('No Data'); }
      }
    });    
    return false;  
  }); 

  <form  name ="form1" id="form1" action = "Surveyoutput" method = "post">
  <input type="submit" id = "submit" name="submit" value="Submit">

サーブレット

       @WebServlet("/Surveyoutput")
       public class Surveyoutput extends HttpServlet {
      response.setContentType("text/html");
      PrintWriter out = response.getWriter();
       out.println("test successful");

        Enumeration<String> paramNames = request.getParameterNames();  
       while(paramNames.hasMoreElements()) 
     {  
      String paramName = (String)paramNames.nextElement();  
      String paramValue = request.getParameter(paramName);  
       System.out.println(paramName);
     System.out.println(paramValue); 
     }

私はajaxが初めてで、間違いを理解できません。どんな助けでも素晴らしいでしょう!

4

0 に答える 0