>웹 프론트엔드 >JS 튜토리얼 >AJAX를 사용하여 파일 다운로드를 트리거하는 방법과 가장 좋은 방법은 무엇입니까?

AJAX를 사용하여 파일 다운로드를 트리거하는 방법과 가장 좋은 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-06 02:04:10533검색

How Can I Trigger a File Download Using AJAX, and What Are the Best Methods?

AJAX 기반 파일 다운로드: 가이드

웹 개발 영역에서는 다음을 사용하여 서버에서 직접 파일을 다운로드해야 하는 필요성이 발생합니다. AJAX 요청. 이를 달성하기 위해 다양한 접근 방식을 활용할 수 있습니다.

표준 접근 방식 중 하나는 버튼 클릭 시 AJAX 요청을 시작하는 것입니다. 다음은 이를 시도하는 스크립트입니다.

var xhr = new XMLHttpRequest();
xhr.open("GET", "download.php");
xhr.send();

다운로드할 파일을 제공하려면 다음과 같은 PHP 스크립트를 사용할 수 있습니다.

<?php
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename= file.txt");
header("Content-Transfer-Encoding: binary");    
readfile("file.txt");
?>

그러나 이 방법은 원하는 결과를 생성하지 못할 수 있습니다. 행동. 따라서 대체 전략이 필요합니다.

업데이트된 솔루션: 다운로드 속성 소개

HTML5 환경에서 새롭게 떠오르는 것은 다운로드 속성입니다. Firefox 및 Chrome(및 곧 IE11)과 같은 주요 브라우저에서 지원되는 이 속성은 파일 다운로드를 위한 보다 효율적인 솔루션을 제공합니다.

<a href="file.txt" download="file.txt">Download File</a>

파일이 웹사이트와 동일한 출처에 있는 한, 이 속성을 사용하여 다운로드할 수 있습니다.

기존 솔루션: AJAX 및 Window 활용 리디렉션

다운로드 속성이 등장하기 전에는 AJAX 요청 또는 window.location 조작을 사용하는 것과 관련된 해결 방법이 있습니다.

$.ajax({
    url: 'download.php',
    type: 'POST',
    success: function() {
        window.location = 'download.php';
    }
});

그러나 window.location을 직접 사용하는 것이 더 좋습니다. 이러한 맥락에서 효율적인 솔루션을 제공합니다.

위 내용은 AJAX를 사용하여 파일 다운로드를 트리거하는 방법과 가장 좋은 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.