<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>登陆</title> <link rel="shortcut icon" href="./images/titlelogo.png"/> <link rel="stylesheet" href="./css/1.css"> </head> <body> <div class="login-box"> <h2>登陆</h2> <form> <div class="user-box"> <input type="text" name="username" id="username" required=""> <label>用户名</label> </div> <div class="user-box"> <input type="password" name="password" id="password" required=""> <label>密码</label> </div> <button type="submit" onclick="login(event)">登陆</button> </form> </div> <script> function login(e) { e.preventDefault(); let username = document.getElementById("username").value; let password = document.getElementById("password").value; let xhr = new XMLHttpRequest(); let url = "http://localhost:8000/login"; xhr.open("POST", url, true); xhr.setRequestHeader("Content-Type", "application/json"); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { let response = JSON.parse(xhr.responseText); if (response[0].status === "success") { alert("登陆成功!"); // TODO: 跳转到其他页面 window.location.href = "./nodejs/userlist.html"; } else { alert("用户名或密码错误!"); } } }; let data = JSON.stringify({ "username": username, "password": password }); xhr.send(data); } </script> </body> </html>解释一下每一行的代码
时间: 2024-02-14 12:13:39 浏览: 201
这是一段 HTML 和 JavaScript 代码,主要实现了一个登录页面并与后端交互验证用户名和密码的功能。以下是每一行代码的解释:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登陆</title>
<link rel="shortcut icon" href="./images/titlelogo.png"/>
<link rel="stylesheet" href="./css/1.css">
</head>
<body>
```
这部分是 HTML 的头部,包含了页面标题、图标以及样式表的引入。
```html
<div class="login-box">
<h2>登陆</h2>
<form>
<div class="user-box">
<input type="text" name="username" id="username" required="">
<label>用户名</label>
</div>
<div class="user-box">
<input type="password" name="password" id="password" required="">
<label>密码</label>
</div>
<button type="submit" onclick="login(event)">登陆</button>
</form>
</div>
```
这部分是登录页面的主体,包含了一个表单和两个输入框(用户名和密码),以及一个登录按钮。
```html
<script>
function login(e) {
e.preventDefault();
let username = document.getElementById("username").value;
let password = document.getElementById("password").value;
let xhr = new XMLHttpRequest();
let url = "http://localhost:8000/login";
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
let response = JSON.parse(xhr.responseText);
if (response[0].status === "success") {
alert("登陆成功!");
// TODO: 跳转到其他页面
window.location.href = "./nodejs/userlist.html";
} else {
alert("用户名或密码错误!");
}
}
};
let data = JSON.stringify({ "username": username, "password": password });
xhr.send(data);
}
</script>
```
这部分是 JavaScript 代码,包含了登录按钮的点击事件,以及与后端的交互。其中:
- `login` 函数是登录按钮的点击事件处理函数,用 `preventDefault()` 阻止默认的表单提交事件。
- `XMLHttpRequest` 对象用于向服务器发送请求和接收服务器响应。通过 `open` 方法设置请求类型(POST)、请求地址和是否异步,通过 `setRequestHeader` 方法设置请求头,通过 `send` 方法发送请求,并通过 `onreadystatechange` 事件监听服务器响应。
- `JSON.parse` 方法用于解析服务器返回的 JSON 格式的数据。
- `window.location.href` 属性用于在当前窗口或标签页中加载一个新文档,从而实现跳转到其他页面。
以上就是这段代码的每一行的解释。
阅读全文