В ответ на ваш успех Ajax вы можете установить скрытый источник iframe

я есть кнопка иonclick это вызовет функцию ajax.

Вот моя функция AJAX

function csv(){

    ajaxRequest = ajax();//ajax() is function that has all the XML HTTP Requests

    postdata = "data=" + document.getElementById("id").value;

    ajaxRequest.onreadystatechange = function(){
        var ajaxDisplay = document.getElementById('ajaxDiv');
        if(ajaxRequest.readyState == 4 && ajaxRequest.status==200){
            ajaxDisplay.innerHTML = ajaxRequest.responseText;           
        }
    }

    ajaxRequest.open("POST","csv.php",false);
    ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    ajaxRequest.send(postdata);
}

Я создаю CSV-файл на основе пользовательского ввода. После его создания я хочу, чтобы он запрашивал загрузку или принудительную загрузку (предпочтительно принудительную). Я использую следующий скрипт в конце файла php, чтобы загрузить файл. Если я запускаю этот скрипт в отдельном файле, он работает нормально.

$fileName = 'file.csv';
$downloadFileName = 'newfile.csv';

if (file_exists($fileName)) {
    header('Content-Description: File Transfer');
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename='.$downloadFileName);
    ob_clean();
    flush();
    readfile($fileName);
    exit;
}
echo "done";

Но если я запускаю его в конце csv.php, он выводит содержимое файла file.csv на страницу (в ajaxDiv) вместо загрузки.

Есть ли способ принудительно загрузить файл в конце csv.php?

Ответы на вопрос(5)

Ваш ответ на вопрос