Подтвердить что ты не робот

Как запускать загрузку с помощью Rails send_data из сообщения AJAX

Я пытаюсь использовать send_data, чтобы вернуть изображение PNG в качестве ответа для запроса на отправку ajax. Как заставить браузер запускать загрузку при успешном обратном вызове?

Подробнее

Я создаю большое изображение base64 с помощью canvas.toDataURL(), а затем отправляю его в Rails (v3.2.6). Rails декодирует его на двоичный PNG и отправляет изображение обратно клиенту.

Я также пробовал send_file, но у него такая же проблема.

Другие опции

4b9b3361

Ответ 1

создать функцию в контроллере

def ajax_download
  send_file "path_to_file/" + params[:file]
end

а затем в действии контроллера

respond_to do |format|
  @java_url = "/home/ajax_download?file=#{file_name}"
  format.js {render :partial => "downloadFile"}
end

и сделайте частичное имя папки с именем _downloadFile.js.erb и напишите эту строку

window.location.href = "<%[email protected]_url %>"