Facebook キャンバスで実行される Rails アプリには、ログインしたユーザーがドキュメントを作成してダウンロードできるワークフローがあります。
ファイルの準備ができたら、そのファイルへのリンクを表示します。これは、dev で send_file を使用してレンダリングするか、本番環境で head (適切な NGINX 構成を使用) を使用してレンダリングする単なる Rails アクションです。この部分は正常に動作します。
新しいブラウザー タブを開かずにファイルのダウンロードを開始するために、リンクのターゲットを空の iframe にしました。
これは機能していましたが、しばらく前に、おそらく Facebook によるセキュリティの変更が原因で、リンクが機能しなくなりました。JavaScript エラーは次のように表示されます。
X-Frame-Options で表示が禁止されているため、ドキュメントの表示を拒否しました。
ユーザーは引き続き新しいタブでリンクを開くことができ、ファイルがダウンロードされます。簡単な修正は、リンクで新しいブラウザー タブを開くことですが、ユーザー エクスペリエンスはそれほど良くありません。
ヘッダーの X-Frame-Options を変更したり、メタ タグを使用したりしようとしましたが、これはキャンバス (iframe で実行) であるため、これらのビューが表示されなくなりました。
このフォームソリューションも試しましたが、何もしませんでした(間違っていた可能性があります)。
新しいブラウザー タブを開かずにファイルのダウンロードを開始するボタンまたはリンクを作成する方法はありますか?