3

blobstore API を ajax で使用する方法を示すサンプルはありますか?

フォームを使用すると問題なく動作しますが、jquery を使用するとファイルの送信方法がわからず、次のエラーが発生します。

    blob_info = upload_files[0]
    IndexError: list index out of range

私はjavascriptでこのコードを持っています

function TestAjax()
{
 var nombre="Some random name";
 ajax={
    type: "POST",
    async:true,
    //dataType:"json",
    url:"{{upload_url}}",
    data:"nombreEstudio="+nombre,   
    error: function ()
    {
        alert("Some error");
        $("#buscando").html("");
    },            
    success: function()
             { alert("it's ok") }
 };             
 $.ajax(ajax);
}

フォームを使用すると、ファイルは入力タグで送信されます(ドキュメントのサンプルとまったく同じです)

4

2 に答える 2

4

私はまさにこれについて一連 投稿を書きました。

于 2010-06-29T19:34:20.647 に答える
2

どういうわけか、サーバーへのマルチパート フォーム データ リクエストを取得する必要があります...フォームを使用している場合、<form>タグには enctype="multipart/form-data" のようなものが含まれていると思います。

ajax経由で「POST」を送信しているだけでは、ファイルがあるマルチパートリクエストが失われます。

あなたを助けるかもしれないいくつかのjQuery「ajaxファイルアップロード」プラグインがあります。

お役に立てれば!

** 編集 **

これに追加できることの 1 つは、通常、(クライアントでの) ajax ファイルのアップロードは、非表示の iframe を作成し、その iframe を使用してフォームを送信するか、フォームを使用して JavaScript 経由で投稿することによって実装されることです。

于 2010-06-29T18:07:16.483 に答える