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 相关文章推荐
jQuery 事件队列调整方法
Sep 18 Javascript
基于node.js的快速开发透明代理
Dec 25 Javascript
JavaScript定时器详解及实例
Aug 01 Javascript
iframe实用操作锦集
Apr 22 Javascript
开源的javascript项目Kissy介绍
Nov 28 Javascript
JavaScript识别网页关键字并进行描红的方法
Nov 09 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
Dec 21 Javascript
浅谈Angular.js中使用$watch监听模型变化
Jan 10 Javascript
node.js操作mongodb简单示例分享
May 25 Javascript
解决Mac安装thrift因bison报错的问题
May 17 Javascript
小谈angular ng deploy的实现
Apr 07 Javascript
node中使用shell脚本的方法步骤
Mar 23 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解决的一个栈的面试题
2014/07/02 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
2014/10/30 PHP
PHP给文字内容中的关键字进行套红处理
2016/04/12 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
PHP模版引擎原理、定义与用法实例
2019/03/29 PHP
javascript css在IE和Firefox中区别分析
2009/02/18 Javascript
浏览器加载、渲染和解析过程黑箱简析
2012/11/29 Javascript
浅析Cookie中的Path与domain
2013/12/18 Javascript
javascript二维数组转置实例
2015/01/22 Javascript
javascript操作表格排序实例分析
2015/05/06 Javascript
Node.js操作mysql数据库增删改查
2016/03/30 Javascript
关于Iframe父页面与子页面之间的相互调用
2016/11/22 Javascript
Bootstrap源码解读导航条(7)
2016/12/23 Javascript
利用JQuery操作iframe父页面、子页面的元素和方法汇总
2017/09/10 jQuery
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
2017/09/18 NodeJs
mpvue构建小程序的方法(步骤+地址)
2018/05/22 Javascript
如何在Vue.js中实现标签页组件详解
2019/01/02 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
2019/10/12 Javascript
vue项目实现减少app.js和vender.js的体积操作
2020/11/12 Javascript
python使用scrapy解析js示例
2014/01/23 Python
wxPython窗口的继承机制实例分析
2014/09/28 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
2018/10/29 Python
详解Python读取yaml文件多层菜单
2019/03/23 Python
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
施华洛世奇韩国官网:SWAROVSKI韩国
2018/06/05 全球购物
波兰在线儿童和婴儿用品零售商:pinkorblue
2019/06/29 全球购物
Java多态性的定义以及类型
2014/09/16 面试题
上海雨人软件技术开发有限公司测试题
2015/07/14 面试题
软件工程师面试题
2012/06/25 面试题
高中生自我鉴定范文
2013/10/30 职场文书
学雷锋演讲稿汇总
2014/05/10 职场文书
英文求职信范文
2014/05/23 职场文书
乡镇挂职心得体会
2014/09/04 职场文书
2016年班主任培训心得体会
2016/01/07 职场文书
68句权威创业名言
2019/08/26 职场文书
某学校的2019年度工作报告范本
2019/10/11 职场文书