通过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文件上传