Я хочу загрузить файл с помощью ajax через пост-запрос с помощью jQuery.
вот код PHP, который я использую.
if (file_exists($file)) { header("Cache-Control: public"); header("Content-Description: File Transfer"); header("Content-Disposition: attachment; filename=$file"); header("Content-Type: application/zip"); header("Content-Transfer-Encoding: binary"); readfile($file); }
и это jQuery.
$('button.erp_ci_download').click(function(){ var formData = $('form#erp_customerinvoice').serialize(); $.ajax({ type: 'POST', url: "App/Ajax/Excel/Download.php", data: formData }); });
невозможно ли скачать его таким образом? я попробовал googling, и некоторые предложили, что это так же, как я это делаю. но в моей консоли он отображает некоторые значения мусора в качестве ответа.
где я иду не так?
Спасибо..
Вы можете просто отправить запрос POST на свою страницу App/Ajax/Excel/Download.php
с данными формы, которые вы хотите, и забыть об использовании jQuery AJAX. Если ваши заголовки ответов верны, когда вы публикуете форму «erp_customerinvoice», браузер по умолчанию покажет вам диалоговое окно файла загрузки, и вы никогда не перейдете на страницу Download.php, потому что заголовки ответов предотвратят перенаправление.
См. Некоторые связанные вопросы для получения дополнительных объяснений и альтернатив: