https://github.com/blueimp/jQuery-File-Uploadを使用して、Rails アプリの S3 にファイルをアップロードしています (この gem をインストールしました: https://github.com/tors/jquery-fileupload-rails )。
これが私のフォームです。ファイルをアップロードして後でドキュメントを作成するだけなので、form_for ではありません。
<%= form_tag 'Bucket URL SNIP', :multipart => true, :id => "fileupload" do %>
<%= hidden_field_tag 'key', @token %>
<%= hidden_field_tag 'AWSAccessKeyId', ACCESSKEYSNIP %>
<%= hidden_field_tag 'acl', 'public-read' %>
<%= hidden_field_tag 'success_action_status', '200' %>
<%= hidden_field_tag 'policy', controller.s3_policy_document %>
<%= hidden_field_tag 'signature', controller.signature %>
<% end %>
jQuery アップローダーは次のように初期化されます。
$(function () {
$('#fileupload').fileupload({
forceIframeTransport: true
});
});
すべてが機能し、UI が表示されますが、ファイルのプログレス バーが終了すると、エラーが表示され、ファイルが実際にアップロードされません。
TypeError: iframe が定義されていません。(Firefox) TypeError: TypeError: 未定義のプロパティ '0' を読み取れません (Chrome)
何が問題なのですか?
編集:
Javascript コンソールを見ると、次のようなエラーが表示されます (実際のアドレスを置き換えます)。
Unsafe JavaScript attempt to access frame with URL BUCKETURL from frame with URL SERVERURL. Domains, protocols and ports must match.