12345678910111213141516171819202122232425262728293031323334353637383940 |
- class LoginManager {
- constructor(apiUrl) {
- this.apiUrl = apiUrl; // 存储API的URL
- }
- validateInput(username, password) {
- const invalidChars = /[^a-zA-Z0-9]/; // 定义一个正则表达式,匹配非法字符
- if (invalidChars.test(username) || invalidChars.test(password)) {
- return false; // 如果输入包含非法字符,则验证失败
- }
- return true; // 否则验证成功
- }
- async login(username, password) {
- if (!this.validateInput(username, password)) {
- alert("用户名和密码只能包含字母和数字!"); // 验证失败时弹出提示
- return;
- }
- try {
- const response = await fetch(this.apiUrl, { // 发送POST请求到服务器
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json' // 设置请求头部为JSON格式
- },
- body: JSON.stringify({ username, password }) // 将用户名和密码转换为JSON字符串
- });
- if (response.ok) {
- const data = await response.json(); // 如果请求成功,解析JSON数据
- return data; // 返回数据
- } else {
- throw new Error('登录失败!'); // 如果响应不成功,抛出错误
- }
- } catch (error) {
- console.error('登录请求失败:', error); // 捕获错误并在控制台输出
- }
- }
- }
- export default LoginManager; // 导出LoginManager类
|