全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Vue axios 中提交表单数据(含上传文件)

我们经常使用表单来上传数据,以及上传文件,那么怎么在表单提交成功的时候接受服务器的响应,并作出相应操作.

当然使用一般jQuery上传对象的格式也是可以的,如果使用传统的表单上传呢?

<!DOCTYPE html>
<html lang="en">
  <head>
    <title></title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
  </head>
  <body>
    <form method="post" action="/upload" enctype="multipart/form-data">
      <input type="text" name="name" value="" placeholder="请输入用户名">
      <input type="text" name="age" value="" placeholder="请输入年龄">
      <input type="file" name="uploadFile">
      <input type="submit" value="提交">
    </form>
  </body>
</html>

这种方式可以提交,那么问题来了,表单提交以后如果需要获取服务器的响应呢,如果需要在响应成功后跳转页面呢,这种方式显得不好处理.

切回正题,在vue中这种简单的表单提交如何处理呢,其实使用的是 FormData 来模拟表单提交

<head>
  <title></title>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <script src="https://cdn.bootcss.com/vue/2.3.4/vue.js"></script>
  <script src="https://cdn.bootcss.com/axios/0.16.2/axios.js"></script>
</head>

<body>
  <form>
    <input type="text" value="" v-model="name" placeholder="请输入用户名">
    <input type="text" value="" v-model="age" placeholder="请输入年龄">
    <input type="file" @change="getFile($event)">
    <button @click="submitForm($event)">提交</button>
  </form>

  <script>
    window.onload = function () {
      Vue.prototype.$http = axios;
      new Vue({
        el: 'form',
        data: {
          name: '',
          age: '',
          file: ''
        },
        methods: {
          getFile(event) {
            this.file = event.target.files[0];
            console.log(this.file);
          },
          submitForm(event) {
            event.preventDefault();
            let formData = new FormData();
            formData.append('name', this.name);
            formData.append('age', this.age);
            formData.append('file', this.file);

            let config = {
              headers: {
                'Content-Type': 'multipart/form-data'
              }
            }

            this.$http.post('/upload', formData, config).then(function (res) {
              if (res.status === 2000) {
                /*这里做处理*/
              }
            })
          }
        }
      })
    }
  </script>
</body>

</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# axios  # 表单提交  # form  # 模拟表单提交  # vue使用axios上传文件(FormData)的方法  # axios+Vue实现上传文件显示进度功能  # 解决axios发送post请求上传文件到后端的问题(multipart/form-data)  # axios 封装上传文件的请求方法  # Element-ui upload上传文件限制的解决方法  # vue+element_ui上传文件  # 并传递额外参数操作  # Vue Element UI + OSS实现上传文件功能  # Element-UI中Upload上传文件前端缓存处理示例  # vuejs+element-ui+laravel5.4上传文件的示例代码  # vue中element-ui使用axios上传文件  # 表单  # 请输入  # 上传  # 的是  # 来了  # 跳转  # 如何处理  # 大家多多  # 上传文件  # body  # scale  # post  # method  # content  # viewport  # width  # initial  # device  # type 


相关文章: 招贴海报怎么做,什么是海报招贴?  如何做网站制作流程,*游戏网站怎么搭建?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  如何在七牛云存储上搭建网站并设置自定义域名?  简单实现Android验证码  相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?  如何通过虚拟主机空间快速建站?  Android使用GridView实现日历的简单功能  专业商城网站制作公司有哪些,pi商城官网是哪个?  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  如何配置FTP站点权限与安全设置?  如何选择高效响应式自助建站源码系统?  高防服务器租用指南:配置选择与快速部署攻略  建站之星微信建站一键生成小程序+多端营销系统  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  浅析上传头像示例及其注意事项  如何实现建站之星域名转发设置?  如何在万网ECS上快速搭建专属网站?  如何通过WDCP绑定主域名及创建子域名站点?  如何选择适配移动端的WAP自助建站平台?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  如何用VPS主机快速搭建个人网站?  深圳网站制作平台,深圳市做网站好的公司有哪些?  如何在Windows服务器上快速搭建网站?  如何选择高效便捷的WAP商城建站系统?  如何通过商城自助建站源码实现零基础高效建站?  如何快速搭建FTP站点实现文件共享?  如何确认建站备案号应放置的具体位置?  如何快速搭建二级域名独立网站?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  如何批量查询域名的建站时间记录?  完全自定义免费建站平台:主题模板在线生成一站式服务  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  如何快速搭建高效简练网站?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  香港服务器网站卡顿?如何解决网络延迟与负载问题?  如何彻底删除建站之星生成的Banner?  如何在阿里云通过域名搭建网站?  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  已有域名和空间如何搭建网站?  北京网站制作公司哪家好一点,北京租房网站有哪些?  网站制作公司排行榜,抖音怎样做个人官方网站  建站之星免费版是否永久可用?  如何确保FTP站点访问权限与数据传输安全?  seo网站制作优化,网站SEO优化步骤有哪些?  西安大型网站制作公司,西安招聘网站最好的是哪个?  公司网站制作价格怎么算,公司办个官网需要多少钱?  如何快速查询网址的建站时间与历史轨迹?  广德云建站网站建设方案与建站流程优化指南 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。