我正在学习ajax。请找到以下代码,
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org /TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript" src="/MyApp/js/jquery.js"></script>
<script type="text/javascript">
function doAjax() {
alert('yes');
$.ajax({
url: 'register.html',
data: ({name : "me"}),
success: function(data) {
$('#time').html(data);
}
});
}
</script>
</head>
<body>
<form action="">
<button id="demo" onclick="doAjax()" title="Button">Get the time!</button>
<div id="time">
</div>
</form>
</body>
</html>
此代码对我的 spring 控制器进行成功的 ajax 调用,并且仅当我删除表单标签时才返回数据,否则它不会显示 ajax 消息(也没有错误)。
我检查了日志。如果我删除表单标签,收到的最后一个请求是“register.html”,这是非常正确的。如果我放置表单标签,点击按钮,请求转到“hello.html”,这是包含上述代码的页面。我无法理解这是怎么回事。
我怀疑的一件事是形式正在被提交。但是,如果我没有在单击按钮时触发 sumit 事件,这怎么可能发生。
我需要在这个页面上有表单标签,所以请指教。
下面的控制器功能,
@RequestMapping("/hello")
public ModelAndView helloWorld() {
return new ModelAndView("hello", "message", "Spring MVC Demo");
}
@RequestMapping(value = "/register", method = RequestMethod.GET)
public @ResponseBody String registerUser(@RequestParam String name) {
String result = "Time for registration" + name + " is " + new Date().toString();
return result;
}