В нашем приложении Rails, которое работает на холсте Facebook, у нас есть рабочий процесс, в котором вошедший в систему пользователь может создать документ, а затем загрузить его.
Когда файл готов, мы показываем ссылку на него. Это просто действие Rails, которое рендерится с использованием send_file в dev или head (с соответствующей конфигурацией NGINX) в продакшене. Эта часть работает нормально.
Чтобы файл начал загружаться, не открывая новую вкладку браузера, у нас была ссылка на пустой iframe.
Это работало, но некоторое время назад, предположительно из-за изменения безопасности Facebook, наша ссылка перестала работать. Ошибки JavaScript показывают:
Отказался отображать документ, потому что отображение запрещено X-Frame-Options.
Пользователи по-прежнему могут открыть ссылку в новой вкладке, и она загрузит файл, и быстрое исправление состоит в том, чтобы ссылка открывала новую вкладку браузера, но это не так удобно для пользователя.
Мы пытались изменить параметры X-Frame-Options в заголовках и/или использовать метатеги, но это холст (работающий в iframe), поэтому эти представления просто не отображались.
Я также пробовал это ">сформировал решение, но оно ничего не сделало (я мог сделать это неправильно).
Есть ли способ создать кнопку или ссылку, которая запустит загрузку файла, не открывая новую вкладку браузера?