使用ajax请求下载文件
当我单击一个按钮时,我想发送一个“ ajax下载请求”,因此我尝试了这种方式:
javascript:
var xhr = new XMLHttpRequest();xhr.open("GET", "download.php");
xhr.send();
download.php:
<?header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename= file.txt");
header("Content-Transfer-Encoding: binary");
readfile("file.txt");
?>
但是没有按预期工作,我该怎么办?先感谢您
回答:
进入HTML5场景的是download属性。它支持在Firefox和Chrome,并很快来到IE11。根据您的需求,window.location
只要您要下载的文件与您的网站位于同一来源,就可以使用它代替AJAX请求(或使用)。
您始终可以window.location
通过使用一些JavaScript来测试是否download
支持AJAX请求/
回退,如果不支持,则将其切换为call window.location
。
您不能有AJAX请求打开下载提示,因为您实际上必须导航到文件以提示下载。相反,您可以使用成功函数导航到download.php。这将打开下载提示,但不会更改当前页面。
$.ajax({ url: 'download.php',
type: 'POST',
success: function() {
window.location = 'download.php';
}
});
即使这可以回答问题,还是最好使用window.location
并完全避免AJAX请求。
以上是 使用ajax请求下载文件 的全部内容, 来源链接: utcz.com/qa/429533.html