3

私は remotipart プラグインを使用して Ajax 画像のアップロードを行っています。最近、Rails のバージョンを 3.1.10 から 3.2.13 にアップグレードしました。Rails のバージョンをアップグレードした後、ajax 画像のアップロードが機能していないことがわかりました。

remotipart プラグインを使用して画像を送信し、応答をレンダリングするフォームがありますが、レールのアップグレード後、応答をレンダリングできません。問題を調査しているときに、応答が textarea ブロックでラップされているため、レンダリングされていないことがわかりました。

関連するstackoverflowの質問のいくつかと、remotipartユーザーによってgithubで報告された問題を参照しましたが、この問題の解決策を見つけることができませんでした.

viz: ペーパークリップ付きの添付ファイルを含めると、ajax 投稿リクエストが html 要素で応答する

Rails 3.2.8 での Paperclip と Ajax の問題

https://github.com/JangoSteve/remotipart/issues/89

この問題をどのように解決できるか、または私が間違っていることを誰かが提案してくれますか?

よろしくお願いいたします。

4

4 に答える 4

0

あなたが解決策を見つけたことを願っています。フォームに入れる data: {type: :script}とうまくいくはずです

于 2015-12-07T06:54:01.430 に答える
0

私にとって、この問題の唯一の解決策は、フォーム データを含む Ajax リクエストを送信するカスタム フォーム送信関数を作成することでした。FormData は新しいブラウザー (IE10+) でのみサポートされているため、これは最適なソリューションではありません。

コフェスクリプトは次のとおりです。

formAjaxSubmit = ($form, $url) ->
  $formData = new FormData($form[0])

  $.ajax(
    type: 'POST'
    url: $url
    data: $formData
    dataType: 'JSON'
    processData: false
    contentType: false # this is crucial line for $.ajax to work with formData
    error: (xhr, status, error) ->
      $.fn.process_ajax_error(null, xhr, status, error)
    success: (data, status, xhr) ->
      $.fn.process_ajax_success(null, data, status, xhr)
  )
  return false

引数:

  • $form - jQuery フォーム オブジェクトのような$('#myForm')
  • $url - 送信 URL。通常、フォーム アクションの値を持つ必要があります。 $('#myForm').attr('action')

$.fn.process_ajax_...- これらはカスタム応答処理関数です

于 2015-01-28T15:20:03.170 に答える