代码拉取完成,页面将自动刷新
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>登录</title>
<link rel="stylesheet" href="./bootstrap/bootstrap.min.css" />
<link rel="stylesheet" href="./bootstrap/bootstrap-icons.css" />
<link rel="stylesheet" href="./css/common.css" />
<link rel="stylesheet" href="./css/login.css" />
</head>
<body class="application application-offset">
<div class="container-fluid container-application">
<div class="main-content position-relative">
<!-- Page content -->
<div class="page-content">
<div class="min-vh-100 py-5 d-flex align-items-center">
<div class="w-100">
<div class="row justify-content-center">
<div class="col-sm-8 col-lg-4">
<div class="card shadow zindex-100 mb-0">
<div class="card-body px-md-5 py-5">
<div class="mb-5">
<h6 class="h3">传智教育-登录</h6>
</div>
<span class="clearfix"></span>
<form role="form" autocomplete="off">
<div class="form-group">
<label class="form-control-label">账号</label>
<div class="input-group input-group-merge">
<div class="input-group-prepend">
<span class="input-group-text"><i class="bi bi-person"></i></span>
</div>
<input name="username" type="text" class="form-control" id="input-email" placeholder="请输入账号" />
</div>
</div>
<div class="form-group mb-4">
<div class="d-flex align-items-center justify-content-between">
<div>
<label class="form-control-label">密码</label>
</div>
<div class="mb-2">
<a href="javascript:;" class="small text-muted text-underline--dashed border-primary">忘记密码</a>
</div>
</div>
<div class="input-group input-group-merge">
<div class="input-group-prepend">
<span class="input-group-text"><i class="bi bi-key"></i></span>
</div>
<input name="password" type="password" class="form-control" id="input-password" placeholder="请输入密码" />
<div class="input-group-append">
<span class="input-group-text">
<a href="javascript:;" data-toggle="password-text" data-target="#input-password">
<i class="bi bi-eye-fill text-blue"></i>
</a>
</span>
</div>
</div>
</div>
<div class="mt-4">
<button id="btn-login" type="button" class="btn btn-sm btn-info btn-icon btn-blue rounded-pill">
<span class="btn-inner--text">登录</span>
<span class="btn-inner--icon"><i class="bi bi-arrow-right"></i></span>
</button>
</div>
</form>
</div>
<div class="card-footer px-md-5"><small>没有注册?</small> <a href="./register.html" class="small font-weight-bold text-blue">创建账号</a></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- toast -->
<div class="position-fixed top-0 start-50 pt-4" style="z-index: 999; transform: translateX(-50%)">
<div id="myToast" class="toast bg-rgba">
<div class="toast-body">提示消息</div>
</div>
</div>
<script src="./bootstrap/bootstrap.min.js"></script>
<script src="./lib/form-serialize.js"></script>
<script src="./lib/axios.js"></script>
<script src="./js/common.js"></script>
<script>
// ---------- 1.点击登录 ----------
document.querySelector('#btn-login').onclick = async function () {
// 2.获取数据 +判断
const data = serialize(document.querySelector('form'), { hash: true })
// console.log('data:', data)
if (data.username === undefined || data.password === undefined) {
tip('用户名密码不能为空!')
return // 阻断后续逻辑
}
// 密码长度判断
if (data.password.length < 6) {
tip('密码不能小于6位!')
return // 阻断后续逻辑
}
// 提交数据
try {
const res = await axios({
url: '/login',
method: 'post',
data, // data:data
})
// console.log('res:', res)
// 保存 token
localStorage.setItem('token', res.data.token)
localStorage.setItem('username', res.data.username)
// 成功
tip(res.message)
// 跳转
window.location.assign('./index.html')
} catch (error) {
console.dir(error) // 如果来源不是请求的错误而是其他的语法错误
// tip 无法通过response.data.message 获取数据
tip(error.response.data.message)
}
}
</script>
</body>
</html>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。