//未带文件带表单提交
$('form').on('submit', function(e){ $.ajax({ url: $('form').attr('action'), type: 'post', data: $('form').serialize(), //这里需要注意 success: function(data) { if (data.err_code ==0) { //成功 window.location.href = '/advert'; } } }) return false //阻止同步表单提交。采用异步提交 })
//带文件带表单提交
1. 在form标签中添加 enctype="multipart/form-data"
2.
$('form').on('submit', function(e){
$.ajax({
url: $('form').attr('action'),
type: 'post',
data: new FormData( $('form')[0] ), //这里不同
processData: false, //添加
contentType: false, //添加
success: function(data) {
if (data.err_code ==0) {
//成功
console.log('成功');
window.location.href = '/advert';
}
}
})
return false
})
//服务端处理带文件带表单提交
body-parser 并不支持 contentType: multipart/form-data 的格式类型,也就是不支持formData格式
使用第三方模块 formidable
1. npm i -S formidable
2.
import formidable from 'formidable';
const form = new formidable.IncomingForm();
form.uploadDir = path.join(__dirname,'../../public/uploads'); //设置文件的上传路径
form.keepExtensions = true; //保存扩展名,默认为false
form.parse(req, function(err, fields, files) {
console.log(fields);
console.log('--------------------------------------');
console.log(files);
res.send({
err_code: 0
});
});