Задать вопрос
@barolina
turn coffee into code

Как вернуть Word-документ пользователю, средствами jQuery?

Отправляю данные серверу - $.post('result_report/', $("#form_extract").serialize(),

Ответ возвращается так :
response = HttpResponse(content_type='text/docx')
response['Content-Disposition'] = 'attachment; filename="' + form.cleaned_data['cadnum'] + '".docx"'
response.ContentType = "application/ms-word"
return response

А затем с помощью jquery пытаюсь дать пользователю сохранить ворд :
var blob = new Blob([data], {type: 'application/docx'})
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = "filename.docx";
link.click();

Ворд сохраняется!!!
Но при открытии выдает - "К сожалению не удается открыть файл из-за проблем с содержимым"
Подскажите в чем может быть проблема?
  • Вопрос задан
  • 1153 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.

var blob = new Blob([data], {type: 'application/docx'})
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = "filename.docx";
link.click();

Это не кроссбраузерный способ, лучше использовать
https://github.com/eligrey/FileSaver.js/

"К сожалению не удается открыть файл из-за проблем с содержимым"

Сервер точно валидный документ отдает?
К чему вообще все эти сложности с AJAX отправкой?
Почему по старинке просто не открывать ответ формы в новом окне?
Ответ написан
Комментировать
saintbyte
@saintbyte
Django developer
Рекомендую поиграться с iframe и target у
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы