こんにちは。
Rails4、Ajaxで非同期に画像を登録する処理を作成しています。
formで画像が選択されたことをAjaxで検知して、controllerへPostしたいです。
以下のようにコードを書いています。
lang
1<!--画像登録用ボタン--> 2<input type="file" accept="image/*" id="imputImage" /> 3 4 5<!-- 画像登録用JS --> 6<script> 7 $(function() { 8 $('#imputImage').change(function() { 9 var fd = new FormData($('#imputImage').get(0)); 10 $.ajax({ 11 url : '/blog_images', 12 type : "POST", 13 data : fd, 14 processData : false, 15 contentType : false, 16 }); 17 }); 18 }); 19</script>
ですが、上記の状態でformで画像を選択しても500エラーとなります。
サーバ側のログは以下の通りです。
lang
1[2015-05-06 13:39:51] ERROR EOFError: bad content body 2 /opt/ruby/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/multipart/parser.rb:74:in `block in fast_forward_to_first_boundary' 3 /opt/ruby/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/multipart/parser.rb:72:in `loop' 4 /opt/ruby/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/multipart/parser.rb:72:in `fast_forward_to_first_boundary' 5 /opt/ruby/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/multipart/parser.rb:15:in `parse' 6 /opt/ruby/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/multipart.rb:25:in `parse_multipart' 7 /opt/ruby/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/request.rb:377:in `parse_multipart' 8 /opt/ruby/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/request.rb:203:in `POST' 9 /opt/ruby/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/methodoverride.rb:26:in `method_override' 10 /opt/ruby/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/methodoverride.rb:14:in `call' 11 /opt/ruby/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/runtime.rb:17:in `call' 12 /opt/ruby/lib/ruby/gems/2.1.0/gems/activesupport-4.1.4/lib/active_support/cache/strategy/local_cache_middleware.rb:26:in `call' 13 /opt/ruby/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/lock.rb:17:in `call' 14 /opt/ruby/lib/ruby/gems/2.1.0/gems/actionpack-4.1.4/lib/action_dispatch/middleware/static.rb:64:in `call' 15 /opt/ruby/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/sendfile.rb:112:in `call' 16 /opt/ruby/lib/ruby/gems/2.1.0/gems/railties-4.1.4/lib/rails/engine.rb:514:in `call' 17 /opt/ruby/lib/ruby/gems/2.1.0/gems/railties-4.1.4/lib/rails/application.rb:144:in `call' 18 /opt/ruby/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/lock.rb:17:in `call' 19 /opt/ruby/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/content_length.rb:14:in `call' 20 /opt/ruby/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/handler/webrick.rb:60:in `service' 21 /opt/ruby/lib/ruby/2.1.0/webrick/httpserver.rb:138:in `service' 22 /opt/ruby/lib/ruby/2.1.0/webrick/httpserver.rb:94:in `run' 23 /opt/ruby/lib/ruby/2.1.0/webrick/server.rb:295:in `block in start_thread'
正しくhttpリクエストを作成できていないのではないかと思っていのですが、どうしてよいものかいきづまってしまい。。。
お教えいただけると幸いです。
よろしくお願いします。!!
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。