Добрый день!
На бэкэнде (Django) формируем файл (excel) и записываем его в HttpResponse
Код:
|
response = HttpResponse(content_type="application/xls")
response['Content-Disposition'] = 'attachment; filename="%s"' % filename
response.write(save_virtual_workbook(book)) |
Итого в response имеем непосредственно данные файла. По сути бери и соохраняй. Если запросить, например,
window.open('/url/to/view?' + $.param(data.form_data));
то браузер сразу предлагает сохранить файл.
Дело в том, что в ответе может не быть файла, и нужно вывести сообщение об ошибке. Поэтому я использую $.ajax
$.ajax({
url: '/url/to/view',
type: 'GET',
data: data.form_data,
dataType: 'application/xls',
success: function(response) {
if (response.error){alert(response.error);
}
});
В функции success, переменной response есть наш файл, и я никак не могу догнать как мне его сохранить...
Такой ход
window.open('data:application/xls,' + response)
отдает некорректный файл (размером на 8Кб больше)
Собственно как мне сохранить содержимое response в неизменном виде, в котором оно приходит с бэкэнда?
Заранее благодарю.