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 相关文章推荐
innerHTML,outerHTML,innerTEXT三者之间的区别
Jan 28 Javascript
Jquery实战_读书笔记1—选择jQuery
Jan 22 Javascript
node.js中的http.response.end方法使用说明
Dec 14 Javascript
director.js实现前端路由使用实例
Feb 03 Javascript
VC调用javascript的几种方法(推荐)
Aug 09 Javascript
浅谈Angularjs link和compile的使用区别
Oct 21 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
Jan 06 Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
Apr 13 Javascript
JS实现调用本地摄像头功能示例
May 18 Javascript
Vue一个案例引发的递归组件的使用详解
Nov 15 Javascript
详解Vue之事件处理
Jul 10 Javascript
微信小程序向Java后台传输参数的方法实现
Dec 10 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
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
2017/06/20 PHP
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
JavaScript 面向对象编程(1) 基础
2010/05/18 Javascript
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
node.js中的path.join方法使用说明
2014/12/08 Javascript
jQuery中(function($){})(jQuery)详解
2015/07/15 Javascript
JavaScript中Array的实用操作技巧分享
2016/09/11 Javascript
D3.js封装文本实现自动换行和旋转平移等功能
2016/10/14 Javascript
JSON字符串和JSON对象相互转化实例详解
2017/01/05 Javascript
js的OOP继承实现(必看篇)
2017/02/18 Javascript
javascript 网页进度条简单实例
2017/02/22 Javascript
JS实现获取汉字首字母拼音、全拼音及混拼音的方法
2017/11/14 Javascript
Node.js Event Loop各阶段讲解
2019/03/08 Javascript
element-ui和vue表单(对话框)验证提示语(残留)清除操作
2020/09/11 Javascript
[48:54]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第二场 6.3
2018/06/04 DOTA
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
[07:54]DOTA2-DPC中国联赛 正赛 iG vs VG 选手采访
2021/03/11 DOTA
pygame学习笔记(1):矩形、圆型画图实例
2015/04/15 Python
使用Python3 编写简单信用卡管理程序
2016/12/21 Python
使用Python操作excel文件的实例代码
2017/10/15 Python
对python3 urllib包与http包的使用详解
2018/05/10 Python
对python多线程SSH登录并发脚本详解
2019/02/14 Python
python设置环境变量的原因和方法
2019/06/24 Python
Django中提示消息messages的设置方式
2019/11/15 Python
HTML5 video循环播放多个视频的方法步骤
2020/08/06 HTML / CSS
域名注册、建站工具、网页主机、SSL证书:Dynadot
2017/01/06 全球购物
澳大利亚便宜的家庭购物网站:CrazySales
2018/02/06 全球购物
英国乡村时尚和宠物用品专家:Pet & Country
2018/07/02 全球购物
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
八荣八耻的活动方案
2014/08/16 职场文书
2014年重阳节敬老活动方案
2014/09/16 职场文书
2014法制宣传日活动总结范文
2014/11/01 职场文书
元素水平垂直居中的方式
2021/03/31 HTML / CSS