2

这是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.');
}

文件没有上传,服务器上的信息什么也没显示,什么也没发生

4

2 回答 2

3

您不能(据我了解)用于$.ajax执行多部分/表单数据表单提交(除非手动构建 POST 正文)。Express 文件上传要求您的 HTML<form>元素具有enctype="multipart/form-data"属性集。你设置好了吗?

对于您尝试执行的操作,您可能希望使用隐藏的 iframe 来执行发布,然后让服务器返回一个 javascript 片段,该片段会以成功/失败进行回调。有许多 jQuery 插件可以为您执行此操作(我相信jQuery Form会执行此操作)。

于 2013-06-10T00:43:07.737 回答
1

only with html5 formData object and you need to append files to it manually:

New Tricks in XMLHttpRequest2

uploading files with ajax

you can use jQuery nice plugin like with fallback etc.:

jQuery File Upload

于 2013-06-10T00:54:50.860 回答