这是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.');
}
文件没有上传,服务器上的信息什么也没显示,没有任何事情发生
答案 0 :(得分:3)
你不能(据我所知)使用$.ajax
来执行 multipart / form-data 表单提交(不是没有手动构建POST主体)。 Express文件上传要求您的HTML <form>
元素设置enctype="multipart/form-data"
属性。你准备好了吗?
对于您尝试做的事情,您可能希望使用隐藏的iframe来执行帖子,然后让服务器返回一个回调成功/失败的javascript片段。有很多jQuery插件可以帮到你({3}}这样做,我相信。)
答案 1 :(得分:1)
仅使用html5 formData对象,您需要手动将文件附加到其中:
你可以使用jQuery nice插件,例如fallback等: