formData提交表单

用form标签
<body>
  <form id="form1" action="http://localhost:8080/" method="post">
    用户:<input type="text" name="user" /><br>
    密码:<input type="password" name="pass" /><br>
    文件:<input type="file" name="f1" /><br>
    <input type="submit" value="提交">
  </form>
</body>
<script src="jquery.js" charset="utf-8"></script>
<script>
$('#form1').on('submit', function (){
  let formdata=new FormData(this);   // 通过这个表单构建FormData
  // 发送ajax请求(jQuery的ajax)
  $.ajax({
    url: this.action,
    type: this.method,
    data: formdata,
    processData: false,   // 阻止jQuery处理数据
    contentType: false   // 阻止修改contentType
  }).then(res=>{
    alert('成功');
  }, res=>{
    alert('失败');
  });

  return false;    // 阻止表单自己提交
});
</script>

同时后台服务器处理提交的数据,用multiparty

不用form标签
<body>
  <div id="div1">
    用户:<input type="text" id="user" /><br>
    密码:<input type="password" id="pass" /><br>
    文件:<input type="file" id="f1" /><br>
    <input id="btn1" type="button" value="提交">
  </div>
</body>
<script>
let oBtn=document.querySelector('#btn1');
oBtn.onclick=function (){
  // 创建FormData
  let formdata=new FormData();
  // 给表单添加页面输入的值
  formdata.append('username', document.querySelector('#user').value);
  formdata.append('password', document.querySelector('#pass').value);
  formdata.append('f1', document.querySelector('#f1').files[0]);

  // 发送ajax请求(原生的ajax)
  let xhr=new XMLHttpRequest();

  xhr.open('post', 'http://localhost:8080/', true);
  xhr.send(formdata);

  xhr.onreadystatechange=function (){
    if(xhr.readyState==4){
      if(xhr.status==200){
        alert('成功');
      }else{
        alert('失败');
      }
    }
  };
};
</script>

同时后台服务器处理提交的数据,用multiparty

后台
const http=require('http');
const multiparty=require('multiparty');

http.createServer((req, res)=>{
  let form=new multiparty.Form({
    uploadDir: './upload/'     // 上传到同级目录下的upload文件夹
  });
  form.parse(req);
  // 普通数据
  form.on('field', (name, value)=>{
    console.log('field:', name, value);
  });
  // 文件数据
  form.on('file', (name, file)=>{
    console.log('file:', name, file);
  });
  // 解析结束
  form.on('close', ()=>{
    console.log('完事儿');
  });
}).listen(8080);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,144评论 1 32
  • 思考:Web2.0的显著特点信息共建,也就是用户可以将自己想要分享的数据提交给服务器端。但是用户能够看到的是最终的...
    好像在哪见过你丶阅读 1,234评论 0 1
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,736评论 1 45
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,447评论 0 9
  • “很苦恼,我的妻子不是女人。”他对我说。 “不是女人?”我偏着头看他。 “她喜欢开男人的车。”他头低下去,我只能看...
    yarcy阅读 529评论 3 5