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 相关文章推荐
Javascript代码混淆综合解决方案-Javascript在线混淆器
Dec 18 Javascript
JS实现切换标签页效果实例代码
Nov 01 Javascript
js怎么覆盖原有方法实现重写
Sep 04 Javascript
JS在onclientclick里如何控制onclick的执行
May 30 Javascript
jQuery基础知识点总结(必看)
May 31 Javascript
js给table赋值的实例代码
Oct 13 Javascript
JavaScript 最佳实践:帮你提升代码质量
Dec 03 Javascript
JavaScript中清空数组的三种方式
Mar 22 Javascript
微信小程序tabbar不显示解决办法
Jun 08 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
Sep 14 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
Jul 12 Javascript
jquery html添加元素/删除元素操作实例详解
May 20 jQuery
解决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中的CMS的涵义
2007/03/11 PHP
微信公众号OAuth2.0网页授权问题浅析
2017/01/21 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
如何用javascript判断录入的日期是否合法
2007/01/08 Javascript
html 锁定页面(js遮罩层弹出div效果)
2009/10/27 Javascript
可以用来调试JavaScript错误的解决方案
2010/08/07 Javascript
IE6/7/8/9不支持exec的简写方式
2011/05/25 Javascript
js将json格式内容转换成对象的方法
2013/11/01 Javascript
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
easyui combobox开启搜索自动完成功能的实例代码
2016/11/08 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
2017/08/11 Javascript
浅谈mvvm-simple双向绑定简单实现
2018/04/18 Javascript
微信小程序之自定义组件的实现代码(附源码)
2018/08/02 Javascript
Python利用ansible分发处理任务
2015/08/04 Python
Python实现八大排序算法
2016/08/13 Python
Python3实现的Mysql数据库操作封装类
2018/06/06 Python
Python批处理更改文件名os.rename的方法
2018/10/26 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
2018/12/30 Python
python读写csv文件并增加行列的实例代码
2019/08/01 Python
python实现人机五子棋
2020/03/25 Python
css3实现动画的三种方式
2020/08/24 HTML / CSS
整理HTML5中表单的常用属性及新属性
2016/02/19 HTML / CSS
阿玛尼化妆品美国官网:Giorgio Armani Beauty
2017/02/02 全球购物
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
建筑公司文秘岗位职责
2013/11/29 职场文书
医药销售自荐书
2014/05/29 职场文书
禁止酒驾标语
2014/06/25 职场文书
乡镇机关党员民主评议表自我评价
2014/09/21 职场文书
银行委托书范本
2014/09/28 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
2015年纪检监察工作总结
2015/04/08 职场文书
学校证明范文
2015/06/24 职场文书
Python Django 后台管理之后台模型属性详解
2021/04/25 Python