> 웹 프론트엔드 > JS 튜토리얼 > Ajax 요청으로 파일 다운로드를 어떻게 트리거할 수 있나요?

Ajax 요청으로 파일 다운로드를 어떻게 트리거할 수 있나요?

Mary-Kate Olsen
풀어 주다: 2024-12-19 14:56:09
원래의
893명이 탐색했습니다.

How Can I Trigger File Downloads with Ajax Requests?

Ajax 요청으로 파일 다운로드

Ajax를 사용하여 버튼 클릭 시 파일을 다운로드하는 기능을 구현하는 데 문제가 발생할 수 있습니다. 이러한 장애물을 극복할 수 있는 솔루션을 살펴보겠습니다.

초기 시도

이를 달성하기 위한 초기 시도에는 다음과 같이 XMLHttpRequest를 생성하고 GET 요청을 PHP 스크립트에 보내는 작업이 포함됩니다. 표시됨 아래:

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

download.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");
?>
로그인 후 복사

제한 사항

그러나 이 방법은 브라우저 제약으로 인해 부족합니다. Ajax 요청은 다운로드 프롬프트를 직접 실행할 수 없습니다. 대신 파일을 탐색해야 파일을 탐색할 수 있습니다.

해결 방법

두 가지 접근 방식을 사용할 수 있습니다.

1. window.location 및 Fallback 사용

window.location 속성을 활용하여 다운로드 스크립트로 이동하여 다운로드를 트리거합니다.

$.ajax({
    url: 'download.php',
    type: 'POST',
    success: function() {
        window.location = 'download.php';
    }
});
로그인 후 복사

2. HTML5 다운로드 속성

최신 브라우저의 경우 HTML5 다운로드 속성을 사용할 수 있습니다.

<a href="download.php" download>
  Download File
</a>
로그인 후 복사

참고:

- 다운로드 속성은 Chrome, Firefox 및 이후 버전의 인터넷에서만 지원됩니다. Explorer.

- 다운로드할 파일이 호스트 페이지와 동일한 출처인지 확인하세요.

위 내용은 Ajax 요청으로 파일 다운로드를 어떻게 트리거할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿