使用HTML+thymeleaf+Ajax异步写一个登录页面
时间: 2023-08-06 11:01:57 浏览: 102
以下是一个使用 HTML、Thymeleaf 和 Ajax 异步提交表单的登录页面示例:
```html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" xmlns:th:attr="http://www.thymeleaf.org/extras/spring-thymeleaf">
<head>
<meta charset="UTF-8">
<title>Login</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<h1>Login</h1>
<form id="loginForm" th:action="@{/login}" method="post">
<p>
<label for="username">Username:</label>
<input type="text" id="username" name="username" required>
</p>
<p>
<label for="password">Password:</label>
<input type="password" id="password" name="password" required>
</p>
<p>
<input type="submit" value="Login">
</p>
</form>
<div id="response"></div>
<script type="text/javascript">
$(document).ready(function() {
$('#loginForm').submit(function(event) {
event.preventDefault(); // 阻止表单提交
var form = $(this);
var url = form.attr('action');
$.ajax({
type: 'POST',
url: url,
data: form.serialize(),
success: function(response) {
$('#response').html(response); // 显示登录结果
},
error: function(xhr, status, error) {
console.log(xhr);
console.log(status);
console.log(error);
}
});
});
});
</script>
</body>
</html>
```
在这个示例中,我们使用了 jQuery 库来处理 Ajax 请求。在 `$(document).ready()` 函数中,我们监听表单的 `submit` 事件,并使用 `event.preventDefault()` 阻止表单的默认提交行为。然后,我们使用 `$.ajax()` 函数来发起 POST 请求,并将表单数据序列化为字符串(使用 `form.serialize()` 方法)。在请求成功时,我们将服务器返回的结果显示在名为 `response` 的 `div` 元素中。
需要注意的是,这个示例并没有在服务器端处理登录请求,因此实际上无法完成登录操作。这个示例仅用于演示如何使用 Thymeleaf 和 Ajax 异步提交表单。
阅读全文