我想使用jQuery通过post请求使用ajax下载文件。
这是我正在使用的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
});
});
是不是可以这样下载?我尝试使用谷歌搜索,一些人建议它与我这样做的方式相同。但在我的控制台中,它显示了一些垃圾值作为响应。
我哪里错了?
谢谢..答案 0 :(得分:4)
您可以使用您希望的表单数据向您的App/Ajax/Excel/Download.php
页面发送POST请求,并忘记使用jQuery的AJAX。如果您的响应标头正确无误,那么当您发布“erp_customerinvoice”表单时,默认情况下,浏览器会显示一个下载文件对话框,您将永远不会导航到Download.php页面,因为响应标头会阻止重定向。 / p>
有关更多解释和替代方案,请参阅一些相关问题: