>백엔드 개발 >PHP 튜토리얼 >AJAX가 파일 다운로드를 트리거하지 않는 이유와 대안은 무엇입니까?

AJAX가 파일 다운로드를 트리거하지 않는 이유와 대안은 무엇입니까?

DDD
DDD원래의
2024-12-23 17:15:15645검색

Why Doesn't AJAX Trigger File Downloads, and What Are the Alternatives?

AJAX를 통해 파일 다운로드

버튼 클릭을 통해 AJAX 다운로드 요청을 시작하려고 하면 해결 방법이 다음과 같은 문제가 발생할 수 있습니다. 현재 채용하고 있는 것은 효과적이지 않은 것 같습니다.

귀하의 접근 방식에는 XMLHttpRequest 객체를 생성하고 GET 요청을 보내는 것이 포함됩니다. 특정 헤더를 설정하고 파일에서 데이터를 읽는 PHP 스크립트(download.php)입니다. 그러나 이 방법은 예상되는 다운로드 프롬프트를 실행하지 않습니다.

해결 방법

문제의 핵심은 AJAX만으로는 파일 다운로드를 직접 시작할 수 없다는 사실입니다. 이를 달성하려면 다음 두 가지 방법 중 하나를 활용할 수 있습니다.

window.location 사용

이 방법은 간단하며 AJAX 요청이 필요하지 않습니다. 다운로드 URL을 window.location에 할당하기만 하면 됩니다.

window.location = "download.php";

이렇게 하면 다운로드 스크립트로 이동하여 사용자에게 현재 페이지를 변경하지 않고 파일을 다운로드하라는 메시지가 표시됩니다.

사용 다운로드 속성(HTML5)

브라우저 지원이 우려되는 경우 다운로드 속성(Firefox 및 Chrome).

<a href="download.php" download>Download File</a>

다운로드 속성은 사용자에게 현재 페이지를 떠나지 않고 파일을 다운로드하라는 메시지를 표시합니다.

위 내용은 AJAX가 파일 다운로드를 트리거하지 않는 이유와 대안은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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