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 相关文章推荐
特殊字符、常规符号及其代码对照表
Jun 26 Javascript
Javascript 类与静态类的实现(续)
Apr 02 Javascript
JQuery操作单选按钮以及复选按钮示例
Sep 23 Javascript
jquery 取子节点及当前节点属性值的方法
Aug 24 Javascript
超级好用的jQuery圆角插件 Corner速成
Aug 31 Javascript
location.hash保存页面状态的技巧
Apr 28 Javascript
JS实现的添加弹出层并完成锁屏操作示例
Apr 07 Javascript
详解react如何在组件中获取路由参数
Jun 15 Javascript
js数组实现权重概率分配
Sep 12 Javascript
javascript中神奇的 Date对象小结
Oct 12 Javascript
select2 ajax 设置默认值,初始值的方法
Aug 09 Javascript
vue项目中引入vue-datepicker插件的详解
May 14 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
第1次亲密接触PHP5(2)
2006/10/09 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
2013/06/05 PHP
php利用新浪接口查询ip获取地理位置示例
2014/01/20 PHP
学习YUI.Ext基础第一天
2007/03/10 Javascript
Display SQL Server Version Information
2007/06/21 Javascript
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
jquery焦点图片切换(数字标注/手动/自动播放/横向滚动)
2013/01/24 Javascript
DWZ刷新dialog解决方法
2013/03/03 Javascript
jquery实现漂浮在网页右侧的qq在线客服插件示例
2013/05/13 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
2014/10/08 Javascript
node.js中的fs.mkdirSync方法使用说明
2014/12/17 Javascript
jquery实现点击页面计算点击次数
2015/01/23 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
微信小程序 Video API实例详解
2016/10/02 Javascript
nodeJS服务器的创建和重新启动的实现方法
2018/05/12 NodeJs
安装vue-cli的简易过程
2018/05/22 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
2019/05/09 Javascript
使用 Jest 和 Supertest 进行接口端点测试实例详解
2020/04/25 Javascript
微信小程序实现倒计时功能
2020/11/19 Javascript
Python的Django框架使用入门指引
2015/04/15 Python
python操作oracle的完整教程分享
2018/01/30 Python
python pandas利用fillna方法实现部分自动填充功能
2020/03/16 Python
jurlique茱莉蔻英国官网:澳洲天然护肤品
2018/08/03 全球购物
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
应届毕业生求职信范文分享
2013/12/26 职场文书
项目计划书范文
2014/01/09 职场文书
电子商务助理求职自荐信
2014/04/10 职场文书
质量月口号
2014/06/20 职场文书
道德与公民自我评价
2015/03/09 职场文书
团员自我评价范文
2015/03/10 职场文书
小学2016年“我们的节日·重阳节”活动总结
2016/04/01 职场文书
八年级作文之友情
2019/11/25 职场文书
python基础学习之生成器与文件系统知识总结
2021/05/25 Python
MySQL中varchar和char类型的区别
2021/11/17 MySQL