前端如何提交数据给后端(包含前端和后端代码)

简介: 前端如何提交数据给后端(包含前端和后端代码)

前端使用Ajax提交Json数据给Spring Boot后端

如果你想提交表单数据到服务器,可以使用Ajax技术将表单数据通过HTTP POST请求到发送到服务器.

前端代码如下

<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
    <title>表单转JSON后提交到服务器</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script>
        function convertToJsonAndSend() {
            var form = document.forms[0];
            var formData = new FormData(form);
            var json = {};
            for (var [key, value] of formData.entries()) {
                json[key] = value;
            }
            $.ajax({
                type: 'POST',//请求方法使用POST
                url: '/submit-form',//提交到的路径(和controller的注解路径要一致)
                data: JSON.stringify(json),
                contentType: 'application/json',
                success: function(response) {
                    console.log(response);
                },
                error: function(xhr, status, error) {
                    console.log(error);
                }
            });
        }
    </script>
</head>
<body>
<form>
    <label for="name">Name:</label>
    <input type="text" id="name" name="name"><br><br>
    <label for="email">Email:</label>
    <input type="email" id="email" name="email"><br><br>
    <label for="phone">Phone:</label>
    <input type="tel" id="phone" name="phone"><br><br>
    <button type="button" onclick="convertToJsonAndSend()">表单转JSON后提交到服务器</button>
</form>
</body>
</html>

在上面的代码中,我们使用 jQuery 的 $.ajax() 方法将表单数据转化为 JSON 并通过 HTTP POST 请求发送到服务器的 /submit-form 路径。服务器可以通过该路径接收表单数据并进行处理。注意,我们需要设置 contentTypeapplication/json,以确保数据以 JSON 格式发送到服务器。

当服务器成功接收并处理表单数据时,可以返回一个响应,该响应会被 success 回调函数接收并打印到浏览器控制台中。如果发送请求时出现错误,可以通过 error 回调函数接收并打印错误信息。

当用户点击 按钮时,表单数据将被转化为 JSON 并发送到服务器。

这边我们后端使用Spring Boot

在 Spring Boot 中,可以使用 @RequestBody 注解将 HTTP POST 请求中的 JSON 数据映射到 Java 对象中。下面是一个示例代码:

  1. 首先要有一个类,专门存储表单数据(接收到JSON数据后将数据转成对象用的类)
public class FormData {
    private String name;
    private String email;
    private String phone;
    // 必须提供无参构造函数
    public FormData() {}
    // 提供 getter 和 setter 方法
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    @Override
    public String toString() {
        return "FormData{" +
                "name='" + name + '\'' +
                ", email='" + email + '\'' +
                ", phone='" + phone + '\'' +
                '}';
    }
}

FormData 类中,我们提供了无参构造函数和 getter/setter 方法。这是因为 Spring Boot 在将 JSON 数据映射到 Java 对象时需要使用无参构造函数创建对象,并使用 getter/setter 方法设置对象的属性值。

2.controller层的实例代码

@RestController
public class TestController {
    @PostMapping("/submit-form")
    public ResponseEntity<String> submitForm(@RequestBody FormData formData) {
        System.out.println(formData.toString());//在IDE的控制台可以看到对象的属性
        return ResponseEntity.ok("Form data submitted successfully.");//成功后将引号里面的东西打印到浏览器的控制台上
    }
}

在上面的代码中,我们使用 @PostMapping 注解将 /submit-form 路径映射到 submitForm() 方法上。该方法使用 @RequestBody 注解将 HTTP POST 请求中的 JSON 数据映射到 FormData 对象中。FormData 对象包含表单中的三个字段:nameemailphone。处理表单数据的逻辑可以在 submitForm() 方法中实现。

当服务器成功接收并处理表单数据时,可以返回一个响应,该响应会被发送到前端。在上面的代码中,我们使用 ResponseEntity.ok() 方法返回一个 HTTP 状态码为 200 的响应,并包含一个成功消息。你可以根据实际需求返回不同的响应。

当用户点击提交按钮时,表单数据将被转化为 JSON 并发送到服务器。服务器将接收到 JSON 数据并映射到 FormData 对象中,然后可以对表单数据进行处理。

运行服务后填写信息,提交表单

浏览器控制台可以看到

IDE控制台可以看到的toString方法

至此,成功将前端表单的数据发送到后端.

相关文章
|
16天前
|
机器学习/深度学习 PyTorch 算法框架/工具
揭秘深度学习中的微调难题:如何运用弹性权重巩固(EWC)策略巧妙应对灾难性遗忘,附带实战代码详解助你轻松掌握技巧
【10月更文挑战第1天】深度学习中,模型微调虽能提升性能,但常导致“灾难性遗忘”,即模型在新任务上训练后遗忘旧知识。本文介绍弹性权重巩固(EWC)方法,通过在损失函数中加入正则项来惩罚对重要参数的更改,从而缓解此问题。提供了一个基于PyTorch的实现示例,展示如何在训练过程中引入EWC损失,适用于终身学习和在线学习等场景。
36 4
揭秘深度学习中的微调难题:如何运用弹性权重巩固(EWC)策略巧妙应对灾难性遗忘,附带实战代码详解助你轻松掌握技巧
|
18天前
|
JSON 前端开发 Java
震惊!图文并茂——Java后端如何响应不同格式的数据给前端(带源码)
文章介绍了Java后端如何使用Spring Boot框架响应不同格式的数据给前端,包括返回静态页面、数据、HTML代码片段、JSON对象、设置状态码和响应的Header。
62 1
震惊!图文并茂——Java后端如何响应不同格式的数据给前端(带源码)
|
9天前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
【10月更文挑战第8天】本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
21 5
|
9天前
|
前端开发 小程序 Java
java基础:map遍历使用;java使用 Patten 和Matches 进行正则匹配;后端传到前端展示图片三种情况,并保存到手机
这篇文章介绍了Java中Map的遍历方法、使用Pattern和matches进行正则表达式匹配,以及后端向前端传输图片并保存到手机的三种情况。
11 1
|
14天前
|
前端开发 JavaScript 开发者
利用代码分割优化前端性能:高级技巧与实践
【10月更文挑战第2天】在现代Web开发中,代码分割是优化前端性能的关键技术,可显著减少页面加载时间。本文详细探讨了代码分割的基本原理及其实现方法,包括自动与手动分割、预加载与预取、动态导入及按需加载CSS等高级技巧,旨在帮助开发者提升Web应用性能,改善用户体验。
|
18天前
|
存储 前端开发 Java
验证码案例 —— Kaptcha 插件介绍 后端生成验证码,前端展示并进行session验证(带完整前后端源码)
本文介绍了使用Kaptcha插件在SpringBoot项目中实现验证码的生成和验证,包括后端生成验证码、前端展示以及通过session进行验证码校验的完整前后端代码和配置过程。
20 0
验证码案例 —— Kaptcha 插件介绍 后端生成验证码,前端展示并进行session验证(带完整前后端源码)
|
18天前
|
JSON 前端开发 数据格式
@RequestMapping运用举例(有源码) 前后端如何传递参数?后端如何接收前端传过来的参数,传递单个参数,多个参数,对象,数组/集合(有源码)
文章详细讲解了在SpringMVC中如何使用`@RequestMapping`进行路由映射,并介绍了前后端参数传递的多种方式,包括传递单个参数、多个参数、对象、数组、集合以及JSON数据,并且涵盖了参数重命名和从URL中获取参数的方法。
20 0
@RequestMapping运用举例(有源码) 前后端如何传递参数?后端如何接收前端传过来的参数,传递单个参数,多个参数,对象,数组/集合(有源码)
|
18天前
|
前端开发 Java
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
文章介绍了如何使用SpringBoot创建简单的后端服务器来处理HTTP请求,包括建立连接、编写Controller处理请求,并返回响应给前端或网址。
36 0
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
|
24天前
|
前端开发 小程序 JavaScript
信前端里的循环显示如何编写代码?
信前端里的循环显示如何编写代码?
60 5
|
2天前
|
存储 数据管理 API
零代码能力:轻松搞定表单和API接口,少写80%后端代码,内含资源
小白接口(果创云 YesApi.cn)是一个零代码和低代码开发平台,提供一站式后端云服务,帮助开发者、学生、业余爱好者、工作室、中小企业及无IT技术人员的传统企业快速搭建应用、接口、服务和网站。平台提供500+免费API接口,支持在线API开发、在线表单、数据库管理、图片文件存储、会员管理等功能,无需后端开发经验,轻松实现数据处理和应用开发。