xlsx 파일을 반환하는 ajax 함수가 있습니다. 하지만 보안상의 이유로 아약스가 자동으로 다운로드를 시작할 수 없다고 읽었습니다. 그래서 xlsx 파일을 변수에 저장하고 "다운로드 준비 완료"버튼을 만들고 싶었습니다. 그게 가능한지 궁금 해서요.xlsx 파일을 변수에 저장하고를 클릭하여 다운로드 하시겠습니까?
xlsx 파일을 반환하는보기 함수.
return HttpResponse(save_virtual_workbook(wb), content_type='application/vnd.ms-excel')
javacript
var xlsxVar = ''
function ajaxGetCSV() {
$.ajax({
url : "{% url 'manager:file' %}",
type : "POST",
data : { csrfmiddlewaretoken : '{{ csrf_token }}' },
success : function(data) {
xlsxVar = data
},
error : function(xhr,errmsg,err) {
console.log(xhr);
console.log(errmsg);
console.log(err);
}
});
};
그리고 다운로드를 시작하기 위해 약간의 클릭 기능.
업데이트 :
<div class='ready'>
test
</div>
$(".ready").click(function(){
var link = $("<a></a>");
link.href = xlsxFile;
link.download = true;
link.click();
});
위의 아직 다운로드를 찍으하지 않습니다.
을 클릭 한 예이다. 그러나 단순히 다운로드 버튼에 대한 일반적인 앵커 요소 인 '를 사용하고 헤더를 옥텟 스트림으로 설정하여 다운로드하도록 지시 할 수 있습니다. – Terry
@Terry의 솔루션이 가장 좋습니다. – youssouf
'success' 함수에서'data'는 문자열입니까? – guest271314