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


Posted in Javascript onJuly 06, 2017

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

当然使用一般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>

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

Javascript 相关文章推荐
js setattribute批量设置css样式
Nov 26 Javascript
jQuery 操作下拉列表框实现代码
Feb 22 Javascript
Jquery知识点三 jquery表单对象操作
Jan 17 Javascript
Javascript获取表单名称(name)的方法
Apr 02 Javascript
jQuery实现的在线答题功能
Apr 12 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
May 28 Javascript
JavaScript中关于iframe滚动条的去除和保留
Nov 17 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
Jun 01 Javascript
vue实现图书管理demo详解
Oct 17 Javascript
如何用原生js写一个弹窗消息提醒插件
May 24 Javascript
全面解析JavaScript Module模式
Jul 24 Javascript
vscode 调试 node.js的方法步骤
Sep 15 Javascript
解决webpack打包速度慢的解决办法汇总
Jul 06 #Javascript
详解微信小程序Radio选中样式切换
Jul 06 #Javascript
Node.js 回调函数实例详解
Jul 06 #Javascript
详解vue渲染从后台获取的json数据
Jul 06 #Javascript
微信小程序 Buffer缓冲区的详解
Jul 06 #Javascript
VUE axios发送跨域请求需要注意的问题
Jul 06 #Javascript
vue-cli如何添加less 以及sass
Jul 06 #Javascript
You might like
为PHP初学者的8点有效建议
2010/11/20 PHP
php的ZipArchive类用法实例
2014/10/20 PHP
WordPress的文章自动添加关键词及关键词的SEO优化
2016/03/01 PHP
快速学习jQuery插件 Form表单插件使用方法
2015/12/01 Javascript
JavaScript正则表达式匹配 div  style标签
2016/03/15 Javascript
jQuery绑定事件-多种实现方式总结
2016/05/09 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
2016/07/04 Javascript
jQuery的图片轮播插件PgwSlideshow使用详解
2016/08/11 Javascript
js时间戳与日期格式之间相互转换
2017/12/11 Javascript
TypeScript中的方法重载详解
2019/04/12 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题
2019/09/27 Javascript
JS实现长图上下滚动效果
2020/03/19 Javascript
微信小程序分享小程序码的生成(带参数)以及参数的获取
2020/03/25 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
[01:22:19]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
python数据结构之二叉树的遍历实例
2014/04/29 Python
使用Python操作MySQL的一些基本方法
2015/08/16 Python
使用Python实现BT种子和磁力链接的相互转换
2015/11/09 Python
Appium+python自动化怎么查看程序所占端口号和IP
2019/06/14 Python
python sqlite的Row对象操作示例
2019/09/11 Python
对Tensorflow中tensorboard日志的生成与显示详解
2020/02/04 Python
python语言实现贪吃蛇游戏
2020/11/13 Python
HTML5 MiranaVideo播放器 (代码开源)
2010/06/11 HTML / CSS
Net-A-Porter美国官网:全球时尚奢侈品名站
2017/02/11 全球购物
什么样的创业计划书可行性高?
2014/02/01 职场文书
家长写给孩子的评语
2014/04/18 职场文书
党员目标管理责任书
2014/07/25 职场文书
个人查摆问题及整改措施
2014/10/16 职场文书
健康状况证明模板
2014/10/23 职场文书
英文感谢信范文
2015/01/21 职场文书
检讨书范文大全
2015/05/07 职场文书
处罚决定书范文
2015/06/24 职场文书
Python访问Redis的详细操作
2021/06/26 Python
图神经网络GNN算法
2022/05/11 Python
单机多实例部署 MySQL8.0.20
2022/05/15 MySQL