jquery.upload.js でハマる

基本はサンプルやデモ見て。
ハマったポイント2つ。

1つは、inputタグのname属性にfileがないとうまくサーバーに遅れていなかったっぽいこと。

<input class="input-file" type="file" enctype="multipart/form-data" name="file">


2つ目は、サーバからの返り値を指定する第4引数にjsonを指定した時に、扱いがjQuery.ajax()のときと違って戸惑ったってこと。

ajax()の時にも、返り値値にjsonを指定できるが、その時は、サーバの返すべき適切なヘッダーは「application/json」だった。それに対して、upload()の方で適切なヘッダーは「text/html」。

で、upload()のcallback関数の第一引数に渡される値は、jsonのルートになっていて、そのまま使える。

function (res) {
alert(res.val);
}

のように。