Rails 3.2、ターボリンク、Filepicker.io を使用して Web アプリを開発しています。
このように API キーをロードします (coffeescript)。$(document).ready
ファイルピッカースクリプトは最初のリクエストで一度ロードされるので、これで十分だと思います。
$(document).ready ->
filepicker.setKey "MY_KEY"
Filepicker に次の (coffeescript) をロードします。jquery-turbolinks
ターボリンクのサポートを jquery に直接組み込む gemを使用していることに注意してください。
jQuery ->
$("#publications_bulk-new #upload-button").on "click", ->
form = $(this).closest('form')
filepicker.pickAndStore
ページに直接アクセスすると、ファイルピッカーは期待どおりに機能します。ただし、ターボリンク リクエストを使用してページにアクセスすると、ファイルをアップロードできません。
フォームを開いたり、Dropbox を参照したりできますが、アップロード時に次のエラー メッセージが赤色で表示されます。
Cannot send results to the applicaiton. Sorry about this, it's our fault. Please close this window and try again.
再試行しても役に立ちません。
Chrome 28.0 のコンソールでエラー メッセージを確認したところ、次のことがわかりました。
Blocked a frame with origin "https://www.filepicker.io" from accessing a frame with origin "http://placeholder.library.dev". The frame requesting access has a protocol of "https", the frame being accessed has a protocol of "http". Protocols must match.
main.js:7
u main.js:7
l main.js:7
i.uploadFiles main.js:7
v.onFileDrop main.js:7
r lodash.min.js:6
(anonymous function) main.js:7
Uncaught Communication iframe not found main.js:7
u main.js:7
l main.js:7
i.uploadFiles main.js:7
v.onFileDrop main.js:7
r lodash.min.js:6
(anonymous function)
更新 2013-07-29 「プロトコル、ドメイン、およびポートは一致する必要があります」
現在のコードを実稼働環境にプッシュしました。これは、(開発) ページの SSL 暗号化が欠落していることが原因であることがメッセージに示されているためです。
残念ながら、これだけが問題ではありません
Blocked a frame with origin "https://www.filepicker.io" from accessing a frame with origin "https://jkreutz.mylibrar.io". Protocols, domains, and ports must match. main.js:7
u main.js:7
l main.js:7
i.uploadFiles main.js:7
v.onFileDrop main.js:7
r lodash.min.js:6
(anonymous function) main.js:7
Uncaught Communication iframe not found main.js:7
u main.js:7
l main.js:7
i.uploadFiles main.js:7
v.onFileDrop main.js:7
r lodash.min.js:6
(anonymous function)