form表单上传数据的三种方式(ajax传递 / FormData文件 / serialize序列化传递 )

2023-11-17


前言

提示:form表单上传数据,可以使用POST 请求发送数据…服务器!!!

此处要考虑上传文件的类型

1.文件类型(word、excel、image/png、mp4)等文件都需要使用 formData格式上传文件至服务器
2.其他的数据内容基本是那个都是按照对象的形式传递的,使用那种都可以

``


一、HTML结构(下方所有上传方式,都依托这个结构)

<body>
    <!-- type-text  键值对,方式提交 -->
    <!-- type=file  上传formData这种数据 -->
    <form action="">
        value1: <input type="text" id="value1" name="v1"><br> value2: <input type="text" id="value2" name="v2">
        <br>
        <button>提交</button>
    </form>

</body>

二、通过post请求的形式(直接传递对应的参数数据)

代码如下(基于jquery实现的):

//第一个版本
    $(function() {
        $('button').on('click', function(e) {
            e.preventDefault();
            //第一种方法:
            $.ajax({
                url: 'http://192.168.205.93:3000/add',
                type: 'POST',
                //键值对的方式提示:
                data: {
                    val1: $('#value1').val(),
                    val2: $('#value2').val()
                },
                success: (res) => {
                    console.log(res);
                }
            })
        })
    });

三、formData上传数据(文本、文件、视频、图片等)

代码如下(示例):

//第二种方法
     $(function() {
         $('button').on('click', function(e) {
             e.preventDefault();
             // 1.先创建formData数据格式 传递HTML对象(文件上传推荐)
             var formData = new FormData($('form')[0]);
             // 2.把传递给服务器数据,追加到formData对象里面
             formData.append('val1', $('#value1').val())
             formData.append('val2', $('#value2').val());
             //删除数据
             // formData.delete('val1');
             //formData数据上传针对input=file ,在上传文件的时候采用
             //formData数据格式,大部分浏览器都支持formdata数据类型
             //使用serilayArray()只能传递普通参数
             //发送请求
             $.ajax({
                 url: 'http://192.168.205.98:3000/addFormData',
                 type: 'POST',
                 data: formData,
                 //如果提交数据格式为formData类型 必须加下面两句,不添加就报错
                 processData: false, //不希望使用   application/x-www-form-urlencoded
                 contentType: false, //不采用默认的数据类型 
                 //数据格式是 application/x-www-form-urlencoded
                 success: (res) => {
                     console.log(res);
                 },
                 error: function(err) {
                     console.log(err);
                 }
             })
         })
     }) 

四、form表单数据序列化(serialize将传递表单中的数据序列化)

代码如下(示例):

 $(function() {
        //serialize form表单里面具有name属性的标签进行序列化, 序列化字符串
        console.log($('form').serialize());
        //serializeArray form表单里面具有name属性的标签进行序列化, 序列化数组套object
        console.log($('form').serializeArray());
        $('button').on('click', function(e) {
            e.preventDefault();
            $.ajax({
                url: 'http://192.168.205.85:3000/addserialize',
                type: 'POST',
                data: $('form').serializeArray(),
                success: (res) => {
                    console.log(res);
                }
            })

        })

    }) 

form的action直接上传数据(不推荐)

1.会造成页面出现跳转,不太适用于现在开发场景,可以了解一下

总结

提示:后续在遇到其他比较有趣的demo也会跟大家分享出来!!! (希望文章可以帮助到大家)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

form表单上传数据的三种方式(ajax传递 / FormData文件 / serialize序列化传递 ) 的相关文章

随机推荐

  • 计算机竞赛 基于计算机视觉的身份证识别系统

    0 前言 优质竞赛项目系列 今天要分享的是 基于机器视觉的身份证识别系统 该项目较为新颖 适合作为竞赛课题方向 学长非常推荐 更多资料 项目分享 https gitee com dancheng senior postgraduate 1
  • 封裝:WPF基于Vlc.DotNet.Wpf封装的视频播放器

    一 目的 应用自带的MediaElement播放器播放文件类型有限 有些格式还需要安装插件 由此应用第三方工具包Vlc DotNet Wpf封装支持多格式的视频播放器 二 环境 VS2019 Win10 Vlc DotNet Wpf HeB
  • 校友全剧透CMU :ME + 转CS + 其他主要项

    在CMU待了一个半学期了 对于留学 对于CMU 对于ME 对于转CS 对于CMU其它各种项目都了解的更多了一些 也有不同的体会 我想这篇文章应该会对任何一个申请了CMU 或者想申请CMU 甚至每一个想要出国留学的人都会有一点帮助 写下面这些
  • Easy-Es核心功能深度介绍

    背景 近期随着项目开源后热度的不断上涨 越来越多小伙伴开始对框架核心功能感兴趣 今天就让我带大家深入源码和架构 一起探索Easy Es 简称EE 的核心功能是如何被设计和实现的 和众多ORM框架一样 EE最为核心的功能就是CRUD 增删改查
  • selenium3之selenium-server-standalone-3.8.1.jar启动

    查看安装的selenium版本 下载对应版本的selenium server 下载地址 http selenium release storage googleapis com index html 需要先安装JDK 自行百度安装 启动se
  • Linux的NFS共享目录操作步骤

    首先准备两台Linux 一台服务器 一台客户机 IP地址可自行设置 两台防火墙都要关闭 配置服务器IP地址 172 20 10 11 配置客户机IP地址 172 20 10 12 先关闭防火墙 systemctl stop filewall
  • 【JavaScript】页面加载 解决Uncaught TypeError: Cannot set property of undefined at

    在初学js的时候 有同学会遇到 Uncaught TypeError Cannot set property onmouseover of undefined at html 的问题 这个问题牵扯到页面加载顺序的问题 我们知道 页面的加载顺
  • 使用Prometheus+Grafana+Spring Boot Actuator监控应用

    在企业级的应用中 监控往往至关重要 监控可以帮助我们预防故障 预测变化趋势 在达到阈值的时候报警 为排查生产问题提供更多的信息 如果我们不知道我们程序的运行情况 当线上系统出现了事故再去排查就需要花费更多的时间 如果能提前监控 就能早做准备
  • VScode的PHP远程调试模式Xdebug

    目录 第一步 安装VScode中相应插件 remote ssh的原理 ssh插件 PHP相关插件 第二步 安装对应PHP版本的xdebug 查看PHP具体配置信息的phpinfo页面 1 首先 打开php编辑器 新建一个php文件 例如 i
  • CentOS7下rsync实现服务器之间实时同步

    rsync简介 rsync是类unix系统下的数据镜像备份工具 使用快速增量备份工具Remote Sync可以远程同步 支持本地复制 或者与其他SSH rsync主机同步 文章主讲实际操作 不再进行详细叙述 想要了解更多可以查看百度百科 一
  • QT 编译报错“QWidget: Must construct a QApplication before a QWidget”

    一 错误原因 1 在构造QApplication之前创建了部件 某个类或者其子类中采用了静态的qWidget或者其子类 由于静态或者全局对象在 main 之前就产生了 所以 早于main 里的QApplication对象 2 混用 debu
  • Python实现敏感词过滤

    在我们生活中的一些场合经常会有一些不该出现的敏感词 我们通常会使用 去屏蔽它 例如 尼玛 gt 一些骂人的敏感词和一些政治敏感词都不应该出现在一些公共场合中 这个时候我们就需要一定的手段去屏蔽这些敏感词 下面我来介绍一些简单版本的敏感词屏蔽
  • 【面试真题】今日头条大数据面试100题,收藏备用

    1 简述WordCount 的实现过程 2 简述MapReduce与 Spark 的区别与联系 3 Spark 在客户端与集群运行的区别 4 相同的 SQL 在 HiveSql 与 SparkSQL 的实现中 为什么 Spark 比 Had
  • Android MVC、MVP、MVVM、MVI架构对比及示例

    随着Android应用开发技术的不断成熟 应用功能越来越丰富 迭代速度要求的越来越高 应用的开发架构也在不断演进 优化 从MVC MVP到MVVM 到如今的MVI 谷歌官方也在不断推广 优化适合Android平台的开发架构 并推出了一系列的
  • centos7部署openwhisk

    实验环境 Openwhisk 192 168 1 36 make lean部署 Fn project 192 168 1 35 Openwhisk核心提炼 环境准备 nodejs12 curl sL https rpm nodesource
  • RateLimiter 的底层实现是啥?

    点击上方 Java基基 选择 设为星标 做积极的人 而不是积极废人 源码精品专栏 原创 Java 2020 超神之路 很肝 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 Rock
  • 本地docker搭建jupyter运行环境

    1 容器操作 1 拉取镜像 docker pull ubuntu 2 创建容器 创建容器时要先考虑好自己要开设几个端口 要提前指定好映射关系 docker run dit name LocalDocker p 3303 8888 p 330
  • proteus设计教程-DS1302时钟芯片驱动程序

    时钟芯片DS1302电路图如下 晶振X1的频率为32 768khz 读写时间只需要调用void read time void write time 两个函数进行操作 直接读取出来的数据是BCD码的形式 需要进行转换 最后提供的两个函数to
  • TypeError: 'float' object is not callable报错及解决方案

    今天进行scikit learn的特征选择实验时 一段非常短的代码不知为何总是报错 代码如下 Filename FeatureV1 py from sklearn feature selection import VarianceThres
  • form表单上传数据的三种方式(ajax传递 / FormData文件 / serialize序列化传递 )

    Form表单数据上传 前言 一 HTML结构 下方所有上传方式 都依托这个结构 二 通过post请求的形式 直接传递对应的参数数据 三 formData上传数据 文本 文件 视频 图片等 四 form表单数据序列化 serialize将传递
Powered by Hwhale