PHP 페이지에 json 객체를 게시하는 웹 페이지를 생각한 다음 PHP 페이지가 일부 데이터를 생성하고 데이터를 로컬 파일로 내 보냅니다. 첫 번째 단계에서 데이터가 너무 커서 URL을 통과 할 수 없으므로 JSON을 사용해야합니다. 그러나 JSON 객체를 AJAX 방식으로 PHP에 전달하면 다운로드가 실행되지 않습니다. 이 다운로드가 어떻게 시작될 수 있는지 궁금합니다.JSON을 PHP에 게시 한 다음 PHP에서 파일 다운로드를 시작 하시겠습니까?
//the code will not trigger a download from PHP
var xmlhttp;
if (window.XMLHttpRequest)
xmlhttp = new XMLHttpRequest();
else
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("POST", "export.php");
xmlhttp.setRequestHeader("Content-type", "application/json", true);
xmlhttp.send(JSON.stringify(obj));
JavaScript로 에코 데이터를 수신 할 수 있지만 JavaScript로 로컬 파일을 만드는 것은 PHP보다 복잡합니다.
그러나 그것이 내가 의미했던 것이 아닙니다. PHP에 양식을 제출하는 것이 아니라 많은 양의 데이터 (URL보다 길 수 있음)를 PHP로 전달한 다음 PHP 코드에서 파일을 다운로드 할 것을 기대합니다. 예를 들어 사용자는 웹 페이지의 데이터베이스 테이블에서 일부 행을 선택한 다음 '선택한 행을 파일로 내보내기'버튼을 클릭하여 다운로드를 트리거 할 수 있습니다. – HQXU85
폼과 동일한 HTTP POST 요청을 보냅니다. HTML에 추가 할 필요가 없으므로 JS에서 제출할 수 있으므로 여전히 사용자에게 숨겨져 있습니다. 나는 네가 원했던 방식으로 네가 할 수 있다고 생각하지 않아. 다운로드를 제대로 표시하려면 브라우저에서 새 탭을 생성하거나 javascript에서 위치를 변경해야합니다. – pajaja