我有一个从服务器下载文件的PHP脚本,当从href标签调用时工作正常,但如果从ajax请求调用相同的php脚本,它就不起作用。 (我需要使用ajax请求,因为我需要在下载de file之前从mysql db中提取文件的路径) 我真的很感激任何帮助。
PHP (mydownload.php)
<?php
header("Content-disposition: attachment; filename=myfile.pdf");
header("Content-type: application/pdf");
readfile("myfile.pdf");
?>
HTML (index.html)
<head>
<script type="text/javascript" src="js/jquery/jquery-3.1.1.min.js"></script>
<script type="text/javascript">
function miFuncion()
{
$.ajax({
url: "mydownload.php",
type: "post",
success: function(res){
}
})
}
</script>
</head>
<body>
<a href="mydownload.php">Download the document (PDF)</a> // Work !
<form>
<input type="button" onclick="miFuncion()" value="Activar Función DL"> // Doesn`t work
</form>
</body>
</html>
正如我之前所说,使用de href标签中的选项,文件下载没有任何问题,但使用ajax请求中的选项我得到以下屏幕:enter image description here
答案 0 :(得分:0)
你应该生成一个url来传递你的ajax请求(比如在json中),然后你可以做一些像location.href = your_download_url;
这样的事情
在您的情况下,您不会以dinamically方式生成文件,因此您可以在location.href = "/download.php";
中直接调用miFuncion()
而无需ajax请求。