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 相关文章推荐
html读出文本文件内容
Jan 22 Javascript
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
Mar 21 Javascript
jQuery实战之仿淘宝商城左侧导航效果
Apr 12 Javascript
jquery.autocomplete修改实现键盘上下键自动填充示例
Nov 19 Javascript
简述AngularJS相关的一些编程思想
Jun 23 Javascript
深入浅析JavaScript中prototype和proto的关系
Nov 15 Javascript
详解js实现线段交点的三种算法
Aug 09 Javascript
js Canvas绘制圆形时钟效果
Feb 17 Javascript
ztree简介_动力节点Java学院整理
Jul 19 Javascript
vue mounted 调用两次的完美解决办法
Oct 29 Javascript
Vuex实现购物车小功能
Aug 17 Javascript
Vue使用鼠标在Canvas上绘制矩形
Dec 24 Vue.js
解决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
多重?l件?合查?(二)
2006/10/09 PHP
APMServ使用说明
2006/10/23 PHP
php学习笔记之 函数声明(二)
2011/06/09 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
定义JavaScript二维数组采用定义数组的数组来实现
2012/12/09 Javascript
Javascript验证用户输入URL地址是否为空及格式是否正确
2014/10/09 Javascript
js简单抽奖代码
2015/01/16 Javascript
jQuery插件zepto.js简单实现tab切换
2015/06/16 Javascript
jQuery下拉友情链接美化效果代码分享
2015/08/26 Javascript
微信小程序 实现tabs选项卡效果实例代码
2016/10/31 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
2016/11/24 Javascript
详解Axios统一错误处理与后置
2018/09/26 Javascript
vue+webpack中配置ESLint
2018/11/07 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
JS中比Switch...Case更优雅的多条件判断写法
2019/09/05 Javascript
JavaScript实现图片轮播特效
2019/10/23 Javascript
vue 解决路由只变化参数页面组件不更新问题
2019/11/05 Javascript
如何正确解决VuePress本地访问出现资源报错404的问题
2020/12/03 Vue.js
[57:38]2018DOTA2亚洲邀请赛3月30日 小组赛A组 OpTic VS OG
2018/03/31 DOTA
python实现socket客户端和服务端简单示例
2014/02/24 Python
使用python绘制二维图形示例
2019/11/22 Python
Python实现投影法分割图像示例(一)
2020/01/17 Python
基于python实现计算且附带进度条代码实例
2020/03/31 Python
德国婴儿推车和儿童安全座椅商店:BABYSHOP
2016/09/01 全球购物
美国复古街头服饰精品店:Need Supply Co.
2017/02/22 全球购物
爱普生美国官网:Epson美国
2018/11/05 全球购物
岗位说明书范文
2014/05/07 职场文书
公司行政助理岗位职责
2015/04/11 职场文书
项目经理助理岗位职责
2015/04/13 职场文书
欠款起诉书范文
2015/05/19 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
2016教师节感恩话语
2015/12/09 职场文书
2016年幼儿园万圣节活动总结
2016/04/05 职场文书
Nginx配置SSL证书出错解决方案
2021/03/31 Servers
java基础——多线程
2021/07/03 Java/Android
鸿蒙3.0体验感怎么样? 鸿蒙3.0系统评测向
2022/08/14 数码科技