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 相关文章推荐
用js计算页面执行时间的函数
Dec 07 Javascript
JS中confirm,alert,prompt函数使用区别分析
Apr 01 Javascript
JavaScript入门之对象与JSON详解
Oct 21 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
Feb 28 Javascript
js操作css属性实现div层展开关闭效果的方法
May 11 Javascript
JavaScript实现表格点击排序的方法
May 11 Javascript
JQuery替换DOM节点的方法
Jun 11 Javascript
Vue.js 父子组件通讯开发实例
Sep 06 Javascript
vue-resourse将json数据输出实例
Mar 08 Javascript
vue两个组件间值的传递或修改方式
Jul 04 Javascript
vue离开当前页面触发的函数代码
Sep 01 Javascript
React如何创建组件
Jun 27 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安全配置
2006/10/09 PHP
PHP定时执行计划任务的多种方法小结
2011/12/19 PHP
javascript 面向对象全新理练之数据的封装
2009/12/03 Javascript
javascript在myeclipse中报错的解决方法
2013/10/29 Javascript
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
node.js中的events.emitter.listeners方法使用说明
2014/12/10 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
JavaScript正则表达式的分组匹配详解
2016/02/13 Javascript
javascript跨域请求包装函数与用法示例
2016/11/03 Javascript
初识NodeJS服务端开发入门(Express+MySQL)
2017/04/07 NodeJs
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
[01:25:33]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第二场 12.20
2020/12/23 DOTA
Python对小数进行除法运算的正确方法示例
2014/08/25 Python
解析Python中的异常处理
2015/04/28 Python
python print输出延时,让其立刻输出的方法
2019/01/07 Python
使用pycharm在本地开发并实时同步到服务器
2019/08/02 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
Flask之pipenv虚拟环境的实现
2019/11/26 Python
python使用Geany编辑器配置方法
2020/02/21 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
2020/02/26 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
Python代码中如何读取键盘录入的值
2020/05/27 Python
html2canvas生成的图片偏移不完整的解决方法
2020/05/19 HTML / CSS
canvas实现滑动验证的实现示例
2020/08/11 HTML / CSS
美国非常受欢迎的Spa品牌:Bliss必列斯
2018/04/10 全球购物
德国电子产品购物网站:TechInTheBasket德国
2018/12/07 全球购物
The North Face官方旗舰店:美国著名户外品牌
2020/09/28 全球购物
后勤岗位职责
2013/11/26 职场文书
电气工程师岗位职责
2014/01/01 职场文书
销售辞职报告范文
2014/01/12 职场文书
校园奶茶店创业计划书
2014/01/23 职场文书
优秀导游先进事迹材料
2014/01/25 职场文书
会计人员岗位职责
2015/02/03 职场文书
只需要这一行代码就能让python计算速度提高十倍
2021/05/24 Python
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python