前端传输数组类型到后端(附代码)

这篇具有很好参考价值的文章主要介绍了前端传输数组类型到后端(附代码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

通过问题Bug指引代码实战,结合实战问题,相应查漏补缺

1. 问题所示

前端传输数组给后端的时候,出现如下问题:

前端log请求如下:
前端传数组,前端,前端,vue,java,python

且请求后端你的时候出现了服务器500error:

前端传数组,前端,前端,vue,java,python

2. 普通数组

如果不使用 JSON 格式传输数据,而是使用普通的数组,可以考虑通过 POST 请求的 body 直接传输数组的形式

  • 前端,可以将数组直接作为请求的 body
  • 后端,可以直接接收请求的 body 作为数组进行处理

前端数据:

<template>
  <div>
    <!-- 按钮触发事件 -->
    <button @click="sendArrayToBackend">发送数组到后端</button>
  </div>
</template>

<script>
export default {
  methods: {
    sendArrayToBackend() {
      const array = ['a', 'b', 'c'];

      // 发送数组到后端
      fetch('http://localhost:8080/processArray', {
        method: 'POST',
        body: array.join(',') // 将数组转换成逗号分隔的字符串作为请求的 body
      })
      .then(response => response.text())
      .then(result => console.log(result))
      .catch(error => console.error('Error:', error));
    }
  }
}
</script>

后端代码:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class BackendApplication {

    public static void main(String[] args) {
        SpringApplication.run(BackendApplication.class, args);
    }

    @PostMapping("/processArray")
    public String processArray(@RequestBody String[] array) {
        // 处理收到的数组
        for (String element : array) {
            System.out.println(element);
        }
        return "Array processed successfully";
    }
}

在这个示例中,前端使用 array.join(',') 将数组转换成逗号分隔的字符串,然后作为请求的 body 直接发送到后端的 /processArray 接口。后端接收到字符串后,根据逗号分隔拆分成数组进行处理

3. JSON格式

前端通过点击按钮触发sendArrayToBackend方法,该方法使用Fetch API将数组发送到后端的/processArray接口。后端接收到数组后进行处理,并返回响应。

前端代码:

<template>
  <div>
    <!-- 按钮触发事件 -->
    <button @click="sendArrayToBackend">发送数组到后端</button>
  </div>
</template>

<script>
export default {
  methods: {
    sendArrayToBackend() {
      const array = ['a', 'b', 'c'];

      // 发送数组到后端
      fetch('http://localhost:8080/processArray', {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json'
        },
        body: JSON.stringify(array)
      })
      .then(response => response.text())
      .then(result => console.log(result))
      .catch(error => console.error('Error:', error));
    }
  }
}
</script>

后端代码:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class BackendApplication {

    public static void main(String[] args) {
        SpringApplication.run(BackendApplication.class, args);
    }

    @PostMapping("/processArray")
    public String processArray(@RequestBody String[] array) {
        // 处理收到的数组
        for (String element : array) {
            System.out.println(element);
        }
        return "Array processed successfully";
    }
}

如果是python代码,也大同小异:

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/receiveArray', methods=['POST'])
def receive_array():
    received_array = request.json # 这里假设前端发送的是 JSON 数组
    print(received_array) # 在后端打印接收到的数组

    # 进行后续处理

    return 'Array received successfully'

if __name__ == '__main__':
    app.run(debug=True)

4. 彩蛋

前端传输的有些普通数组,在前端传输过程中,对应的接口可以以toString格式传输给后端:
前端传数组,前端,前端,vue,java,python

后端通过@RequestParam的注解接收

前端传数组,前端,前端,vue,java,python

如果以JSON格式传输,则后端接口以@Requsetbody的注解接收
(除了上面的前端使用JSON.stringify()方法,也可在前端以JSONArray格式传输,后端以JSONArray的类型传输)文章来源地址https://www.toymoban.com/news/detail-854138.html

到了这里,关于前端传输数组类型到后端(附代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • java MultipartFile+vue+element 批量上传文件、图片,与普通数据同时提交保存才上传到后端

    java MultipartFile+vue+element 批量上传文件、图片,与普通数据同时提交保存才上传到后端

    文件上传项目可参考:点击预览 1.最简单也是最普遍的做法是form表单提交,其实前端提交到后端也是难以离开form表单提交, 一般有两种方式来处理文件、图片上传: 先上传,获取返回路径,再整个表单提交后端保存; 普通数据与文件图片同时提交后端,由后端处理 优点比

    2024年02月03日
    浏览(13)
  • 若依框架前端静态资源到后端访问

    若依框架前端静态资源到后端访问

    修改ruoyi-ui中的.env.production(二选一) 修改ruoyi-ui中的router/index.js,设置mode属性为hash 打包前端静态资源文件。 修改后端resources中的application.yml,添加thymeleaf模板引擎配置 修改后端pom.xml,增加thymeleaf模板引擎依赖 修改后端ResourcesConfig.java中的 addResourceHandlers,添加静态资源映

    2024年02月06日
    浏览(16)
  • 前端请求传输token到后端的两种方式

    谈谈 cookie session jwt - 掘金 前端在每次请求时把 token 放在请求头中发送给后端,目前有两种方式: 一是 通过 cookie 的形式 ,即把 token 放在 cookie 中,每次浏览器会自动帮我们带过去,不需要我们自己设置。 二是 放在请求头 header Authorization 中 ,需要我们自己手动设置请求头

    2024年02月07日
    浏览(16)
  • 前端发送的请求,是如何请求到后端服务的?

    发现问题 通过对前端请求路径以及后端接口地址的对比可以发现,两者其实并不相同,也就是说前端的请求并不是直接去发送给后端的tomcat服务器的,而是前端浏览器首先去请求nginx服务器,然后再通过nginx反向代理将请求转发到后端的tomcat服务器。 提出问题 那么我们为什么

    2024年03月10日
    浏览(10)
  • 从前端到后端:如何在 URL 参数中传递 JSON 数据

    在 Web 开发中,我们经常需要将数据作为 URL 参数进行传递。当我们需要传递复杂的数据结构时,如何在前端将其转换为字符串,并在后端正确地解析它呢?本文将介绍如何在前端将 JSON 数据进行 URL 编码,并在后端将其解析为相应的数据类型,同时提供 Java 语言的示例代码。

    2024年02月07日
    浏览(18)
  • Java后端和前端传递的请求参数的三种类型

    在 HTTP 请求中,常见的请求参数类型有三种:`application/x-www-form-urlencoded`、`multipart/form-data` 和 `application/json`(通常用于 `raw` 类型)。这三种类型主要指的是请求体中的数据格式,其中包括参数的传递方式和编码。 1. **`application/x-www-form-urlencoded`:**    - 这是默认的编码类型

    2024年02月02日
    浏览(14)
  • 前端向Java后端请求blob、arraybuffer类型的数据流

    前端需要获取后端音频文件,但遇到跨域问题,不能直接使用url获取,需求必须使用流将文件传到前端。因此,考虑Java后端读取音频文件,然后向前端发送数据流,前端按后端发送类型将数据接收,并合成其格式文件。 引入axios.min.js文件 其中,responseType:‘arraybuffer’,写成

    2024年02月13日
    浏览(14)
  • 用element-ui中的up-load组件实现简单的图片上传到本地然后回显(从前端到后端)

    用element-ui中的up-load组件实现简单的图片上传到本地然后回显(从前端到后端)

    一:前端样式以及效果:  前端样式代码如下: 二:后端Controller层  这里的处理逻辑是将前端传递进来的图片交给FileUtil处理,接下来看FileUtil的代码: 首先获取传递进来图片的文件名后缀 然后用UUID将其拼接得到一个新的名字 将图片存入到本地的文件夹下面 接下来返回路

    2024年02月03日
    浏览(15)
  • CRM项目为新增用户设置对应的前端校验规则并发送Axios请求到后端将表单数据提交用户信息------CRM项目

    template     el-button type=\\\"primary\\\" @click=\\\"addUser()\\\"新增用户/el-button     el-button type=\\\"danger\\\"批量删除/el-button     el-table         :data=\\\"userList\\\"         style=\\\"width: 100%\\\"         @selection-change=\\\"handleSelectionChange\\\"             !-- 复选框    --         el-table-column type=\\\"selection\\\" width=\\\"33%\\\"

    2024年02月19日
    浏览(11)
  • vue3 - 使用element-plus组件库el-upload上传超大mp4视频分片上传,Upload上传大文件mp4视频进行切片分段上传到后端服务器教程,vue3如何上传很大的视频(详细示例代码

    vue3 - 使用element-plus组件库el-upload上传超大mp4视频分片上传,Upload上传大文件mp4视频进行切片分段上传到后端服务器教程,vue3如何上传很大的视频(详细示例代码

    在vue3+elementPlus中,使用el-upload组件\\\"切片分段\\\"上传mp4大视频到服务器,支持任意大视频、大文档、大压缩包等超大文件,通用方法将其拆分成多个小段进行逐个逐条上传到后端(支持断点续传、下载预览)。 详细大文件分片功能源码,可只拿前端源码或只拿springboot(Java)后

    2024年03月16日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包