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

(私が理解している限り)multipart/form-data$.ajaxフォーム送信を実行するために使用することはできません(手動で POST 本文を作成しない限り)。高速ファイル アップロードでは、HTML要素に属性が設定されている必要があります。設定していますか?<form>enctype="multipart/form-data"

あなたがしようとしているのは、おそらく非表示のiframeを使用して投稿を実行し、サーバーに成功/失敗でコールバックするjavascriptスニペットを返すことです。これを行う jQuery プラグインが多数あります ( jQuery Formがそれを行うと思います)。

于 2013-06-10T00:43:07.737 に答える
1

html5 formData オブジェクトのみで、ファイルを手動で追加する必要があります。

XMLHttpRequest2 の新しいトリック

ajaxでファイルをアップロードする

フォールバックなどのように jQuery の素敵なプラグインを使用できます。

jQueryファイルのアップロード

于 2013-06-10T00:54:50.860 に答える