通过ajax nodejs express上传带有表单的文件

这是ajax文件

$(form).submit(function() { $.ajax( { url:'/newProduct', cache: false, type: 'POST', data: $(form).serialize(), success:function(datos) { console.dir(datos) }, error:function(xhr,tm) { }, complete:function() { form.reset(); } }) return false }); 

这在服务器上

 exports.newProduct=function(req,res) { console.dir(req.body) console.dir(req.files) return res.send('Producto Cargado correctamente.'); } 

文件没有上传,服务器上的信息显示什么都没有,没有任何事情发生

你不能(据我所知)使用$.ajax来执行multipart / form-data表单提交(不是没有手动构建POST主体)。 Express文件上载要求您的HTML

元素具有enctype="multipart/form-data"属性集。 你有它吗?

对于你想要做的事情,你可能想要使用隐藏的iframe来执行post,然后让服务器返回一个javascript片段,回调成功/失败。 有很多jQuery插件可以为你做这个( jQuery Form做到了,我相信)。

仅使用html5 formData对象,您需要手动将文件附加到它:

XMLHttpRequest2中的新技巧

使用ajax上传文件

你可以使用jQuery漂亮的插件,如回退等:

jQuery文件上传