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が初めてで、間違いを理解できません。どんな助けでも素晴らしいでしょう!