【发布时间】:2013-12-08 17:26:45
【问题描述】:
我的 Ajax 调用有问题。 这是我的控制器:
@RequestMapping(value = { "/sendMsg" }, method = RequestMethod.POST)
public ModelAndView postSendMessage(@ModelAttribute("message") MsgParam param) {
ModelAndView result= new ModelAndView("sendMessage");
...Controller logic...
}
我的 sendMessage.jsp 中有一个应该返回 json 的表单。但是 ajax 调用不起作用,所以现在我试图让它通过 ajax 调用返回 html,这对用户应该没有影响。我现在要做的就是使用 html 返回进行简单的 ajax 调用。 这是我的jsp中的表格:
<form:form id="postForm" method="POST" commandName="message" action="${pageContext.request.contextPath}/sendMsg">
... input fields with path attributes...
</form:form>
这按预期工作,所以这就是省略逻辑的原因。 我尝试在表单后添加以下脚本:
<script>
$('#postForm').submit(function(evt) {
evt.preventDefault();
alert("ajax");
msgData = $('#postForm').serialize();
$.ajax({
url: $('#postForm').action,
type: 'POST',
data: msgData
});
});
</script>
所以现在当我尝试像以前一样提交表单时,我会在 ajax 调用弹出之前收到 ajax 警报,但没有发送页面发布请求,也没有任何反应。有谁知道出了什么问题?
非常感谢..
【问题讨论】:
-
控制台有错误吗?
-
您的表单元素是否具有“名称”属性? jQuery 的表单序列化方法在我身上发生了几次。
-
控制台没有错误..
-
没有 name 属性,只有 path 属性来绑定它们,当我没有脚本时它可以完美运行
-
请不要使用警报。您可以使用 console.log()。
标签: java jquery spring-mvc