【发布时间】:2014-09-13 09:24:11
【问题描述】:
我在jsp中有一个表单:
<form id="emailForm" data-role="form">
<input type="text" class="form-control" id="name" name="name" placeholder="Enter full name..">
<input type="submit" id="emailSubmit" name="emailSubmit" class="btn btn-default" value="submit">
</form>
我使用 AJAX 将表单发送到控制器:
$("#emailSubmit").click(function(e){
e.preventDefault(); //STOP default action
var postData = $("#emailForm").serializeArray();
$.ajax(
{
type: "POST",
url : "HomeController",
data : postData,
success: function(data)
{
$("#emailResult").html("<p>Thank your for submitting</p>);
},
error: function(jqXHR, textStatus, errorThrown)
{
$("#emailResult").html("<p>ss"+errorThrown+textStatus+jqXHR+"</p>");
}
});
});
我在这里检查是否已经在Controller中提交:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String emailSubmit = request.getParameter("emailSubmit");
if(emailSubmit != null){
// continue
}}
谁能告诉我为什么当它检查表单是否在控制器中提交时它是null?
【问题讨论】:
-
你在javascript端有什么post数据?因为它不会发布您的表格。此外,正常的浏览器请求是 GET;因此,如果调用 doPost,您可以很确定某些内容来自您的代码(或黑客)。
-
var postData = $("#emailForm").serializeArray(); -
不确定,那个按钮值会被序列化,你正在检查。
-
@ElliottFrisch 表单发送参数很好。我通过将条件语句更改为
==来检查这一点,它可以工作。 -
@crm 如果可行,您能解释一下您的问题吗?您确定参数没有到达 Servlet 吗?哪方面有问题?
标签: java jquery ajax forms submit