首页 > 其他分享 >使用Axios实现无刷新信息验证:提升用户体验

使用Axios实现无刷新信息验证:提升用户体验

时间:2025-01-14 23:31:47浏览次数:3  
标签:Node Axios const 验证 js 刷新 message 表单

使用Axios实现无刷新信息验证:提升用户体验

在现代Web开发中,用户体验至关重要。尤其是在信息验证的场景中,用户通常希望能迅速得到反馈,而不必每次都刷新页面。这篇文章将详细探讨如何使用Axios实现无刷新信息验证,提升用户体验与效率。我们将通过一个具体的例子来展示使用Axios如何优于传统的页面刷新方法。

先声明一点,所有服务器均使用node.js,文中后续会讲到如何使用

文章目录

传统方法:使用表单提交并刷新页面

在传统的Web开发中,提交表单信息通常需要刷新整个页面。让我们来看一个典型的示例。在这个例子中,我们创建了一个简单的登录表单,其中用户输入用户名和密码,然后提交信息。每当用户提交表单时,浏览器会刷新页面并验证用户信息。

示例代码(不使用Axios的实现)

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>传统表单验证</title>
    <style>
      body {
        font-family: Arial, sans-serif;
      }
      .container {
        max-width: 400px;
        margin: 50px auto;
      }
      input {
        width: 100%;
        padding: 10px;
        margin: 10px 0;
      }
      .message {
        color: red;
      }
    </style>
  </head>
  <body>
    <div class="container">
      <h2>登录</h2>
      <form
        id="loginForm"
        action="http://localhost:3000/validate"
        method="POST"
      >
        <input type="text" name="username" placeholder="用户名" required />
        <input type="password" name="password" placeholder="密码" required />
        <button type="submit">登录</button>
        <div class="message" id="message"></div>
      </form>
    </div>
  </body>
</html>

在这个示例中,用户在填写完登录信息后点击“登录”按钮,浏览器会通过POST请求将数据发送至服务器,然后刷新页面显示返回的信息。这种方式不仅浪费时间,还容易导致用户体验不佳。

使用Axios进行无刷新信息验证

为了改善用户体验,我们可以使用Axios库来实现无刷新信息验证。Axios允许我们通过异步请求的方式将数据发送到服务器,并在获取响应后动态更新网页内容。这样,即使在提交表单后,页面也不会刷新,用户可以迅速看到结果。

示例代码(使用Axios的实现)

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>使用Axios的无刷新登录</title>
    <style>
      body {
        font-family: Arial, sans-serif;
      }
      .container {
        max-width: 400px;
        margin: 50px auto;
      }
      input {
        width: 100%;
        padding: 10px;
        margin: 10px 0;
      }
      .message {
        color: green;
      }
      .error {
        color: red;
      }
    </style>
    <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
  </head>
  <body>
    <div class="container">
      <h2>登录</h2>
      <form id="loginForm" onsubmit="return loginUser(event);">
        <input type="text" id="username" placeholder="用户名" required />
        <input type="password" id="password" placeholder="密码" required />
        <button type="submit">登录</button>
        <div class="message" id="message"></div>
      </form>
    </div>

    <script>
      function loginUser(event) {
        event.preventDefault(); // 阻止表单的默认提交

        const username = document.getElementById("username").value;
        const password = document.getElementById("password").value;

        axios
          .post("http://localhost:3000/validate", {
            username: username,
            password: password,
          })
          .then(function (response) {
            const message = document.getElementById("message");
            if (response.data.success) {
              message.textContent = "登录成功!";
              message.className = "message";
            } else {
              message.textContent = "登录失败:" + response.data.message;
              message.className = "error";
            }
          })
          .catch(function (error) {
            console.error(error);
            const message = document.getElementById("message");
            message.textContent = "服务器错误,请稍后再试。";
            message.className = "error";
          });
      }
    </script>
  </body>
</html>

代码解析

  1. HTML部分: 我们保持了一个简单的登录表单,但在 onsubmit事件中调用了自定义的 loginUser函数,以处理表单的提交。
  2. CSS部分: 提供了基本的样式,使表单看起来简洁美观。
  3. JavaScript部分:
    • 使用 event.preventDefault()来阻止表单的默认提交行为,避免页面刷新。
    • 通过Axios向Node.js服务器发送登录请求,接收响应并根据结果动态更新页面显示的信息。
  4. Node.js部分:
    • 使用Express框架创建基本的Web服务器,接受来自前端的POST请求。
    • 模拟用户信息进行简单的用户名和密码验证,并返回相应的JSON格式的结果。

使用Node.js构建服务器端

要在你的计算机上安装Node.js和npm(Node Package Manager),请按照以下步骤进行操作。Node.js是一个JavaScript运行时,用于构建服务器和网络应用,而npm是Node.js的包管理工具,用于安装和管理JavaScript库和工具。

安装Node.js和npm的步骤

  1. 下载Node.js

    • 访问Node.js的官方网站:Node.js官网
    • 在下载页面上,你会看到两个版本:
      • LTS(长期支持版):适合大多数用户,推荐用于生产环境。
      • Current(当前版):包含最新的功能,适合开发和测试。
    • 点击相应版本的下载链接,下载适合你操作系统的安装程序。
  2. 安装Node.js

    • Windows
      • 双击下载的 .msi安装程序。
      • 按照安装向导的指示进行操作,选择默认设置即可。
    • macOS
      • 双击下载的 .pkg安装程序。
      • 按照安装向导的指示进行操作。
    • Linux
      • 可以使用包管理器进行安装。以下是一些常见的Linux发行版的安装命令:

      • Debian/Ubuntu

        sudo apt update
        sudo apt install nodejs npm
        
      • CentOS/RHEL

        sudo yum install epel-release
        sudo yum install nodejs npm
        
  3. 验证安装

    • 安装完成后,打开命令行或终端,输入以下命令来验证Node.js和npm是否正确安装:
    node -v
    npm -v
    
    • 如果安装成功,你将看到Node.js和npm的版本号。

示例代码(Node.js服务器端)

首先,确保你已安装Node.js和npm。然后,按照下面的步骤进行:

  1. 创建项目文件夹

    mkdir axios-login-example
    cd axios-login-example
    
  2. 初始化项目

    npm init -y
    
  3. 安装Express

    npm install express body-parser cors
    
  4. 创建服务器文件 server.js

    const express = require("express");
    const bodyParser = require("body-parser");
    const cors = require("cors");
    const path = require("path");
    
    const app = express();
    const PORT = 3000;
    
    app.use(cors());
    app.use(bodyParser.urlencoded({ extended: true })); // 解析表单数据
    app.use(bodyParser.json()); // 解析JSON数据
    app.use(express.static(path.join(__dirname, "public"))); // 静态文件
    
    // 模拟用户信息
    const users = [
      { username: "user1", password: "pass1" },
      { username: "user2", password: "pass2" },
    ];
    
    // 处理登录请求
    app.post("/validate", (req, res) => {
      const { username, password } = req.body;
      const user = users.find(
        (u) => u.username === username && u.password === password
      );
    
      if (user) {
        res.json({ success: true }); // 返回JSON格式的数据
      } else {
        res.json({ success: false, message: "用户名或密码错误" }); // 返回JSON格式的数据
      }
    });
    
    // 添加根路径的路由处理程序
    app.get("/", (req, res) => {
      res.send("欢迎来到服务器!"); // 或者您可以返回一个HTML文件或其他内容
    });
    
    app.listen(PORT, () => {
      console.log(`服务器正在运行,访问 http://localhost:${PORT}`);
    });
    
    
  5. 运行服务器

    node server.js
    

标签:Node,Axios,const,验证,js,刷新,message,表单
From: https://blog.csdn.net/wxdzuishaui/article/details/145149524

相关文章

  • 使用 C# 和 Tesseract OCR 识别验证码使用 C# 和 Tesseract OCR 识别验证码
    安装TesseractOCR和相关依赖在C#中使用Tesseract,需要通过NuGet安装Tesseract包。安装TesseractNuGet包打开VisualStudio。在项目中右键点击NuGet包管理器>管理NuGet包。搜索Tesseract并安装最新版本的包。bashInstall-PackageTesseract2.编写......
  • Kotlin 实现英文数字验证码的识别
    准备工作安装依赖:确保已安装TesseractOCR。bash更多内容访问ttocr.com或联系1436423940sudoapt-getinstalltesseract-ocr配置Kotlin开发环境,推荐使用IntelliJIDEA。导入依赖:在Kotlin项目的build.gradle.kts文件中添加以下依赖,用于处理文件和图像:kotlinpl......
  • 代码随想录:验证二叉搜索树
    二叉搜索树的中序遍历结果是一个递增的数组为了省空间可以用一个变量记录上一次的数字我一开始设置上一次的为null,结果c++中int为null时实际为0,所以要用最小值/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*......
  • WPF命令模式深度解析:从RelayCommand到命令自动刷新机制
    引言 在WPF应用程序开发中,命令模式是一个非常重要的设计模式,它帮助我们将UI交互与业务逻辑解耦。本文将深入探讨WPF命令模式的实现机制,特别是通过RelayCommand的实现来理解命令模式的核心概念。 1.命令的基础概念1.1什么是命令?命令是将用户操作(如按钮点击)转换为具体行为......
  • 图形验证码是怎样保护登录安全的?
    图形验证码是一种广泛应用于网络安全领域的技术手段,其主要目的是防止恶意用户对系统进行暴力破解等攻击行为。以下将详细介绍图形验证码的原理及作用。一、图形验证码的原理随机生成与临时存储:系统会随机生成一个验证码,并将其临时保存在用户的Session里。这个过程确保了每......
  • vue项目利用vite打包发版,前端页面自动提示用户刷新页面
    概要        我们做一个纯前端自动提示用户刷新页面的功能,这个功能主要是防止用户的js代码还是旧版的导致某些功能没能及时更新。整体架构流程1、我们先在public/version.json创建这个json文件,用来存储版本号{"version":"1.0"}2、我们可以在vite.config.j......
  • From表单提交时为什么会刷新页面?怎么预防刷新?
    From表单提交时会刷新页面,主要是因为表单提交是一种网络请求操作,当表单被提交时,浏览器会向服务器发送请求,服务器处理表单数据后返回一个新的页面,这个过程导致页面刷新,以展示服务器返回的新内容。要预防From表单提交时的页面刷新,可以采取以下几种方法:使用AJAX技术:AJAX(Asynchrono......
  • Python 和 Tesseract OCR 识别复杂验证码
    ​安装依赖首先,确保已安装所需的工具和库。安装Tesseract在Windows上,下载安装包并进行安装:TesseractGitHub。在Linux上,你可以通过以下命令安装:bash更多内容访问ttocr.com或联系1436423940sudoapt-getinstalltesseract-ocr安装Python库使用pip安装Python......
  • (经过验证)在 Ubuntu 系统中为 VSCode、PyCharm 终端及 Jupyter Notebook 配置代理的完
    文章目录1.通过系统环境变量配置代理步骤一:打开终端步骤二:编辑`~/.bashrc`文件步骤三:添加代理环境变量步骤四:保存并关闭文件步骤五:使配置生效步骤六:重启相关应用步骤七:使用代理函数2.在VSCode中配置代理步骤一:打开设置界面步骤二:搜索代理设置步骤三:添加代理配置步......
  • 何时需要手动刷新授权表
    记忆中在MySQL里对用户进行授权操作后都需要执行flushprivileges才能生效,怎么我在涉及到用户授权相关的文章里没看到执行flushprivileges语句?对于这个问题的解答,首先得明白语句flushprivileges的作用是什么?flushprivileges是flush语句集合里的一条子项,执行......