ich stehe hier vor dem Problem, eine Datei herunterladen zu wollen, ohne daß dafür ein Link angeklickt werden muß.
Konkret ist es so, daß über einen Button mittels AJAX ein PHP Script gestartet wird, das eine CSV Datei erstellt. Funktioniert wunderbar. Anschließend an die Erstellung soll die Datei automatisch heruntergeladen werden, und da hängt es momentan. Ich habe ein kleines PHP Script, das die Datei auch korrekt herunterlädt, wenn es vom Browser gestartet wird. Wird es aber per AJAX gestartet, nachdem die Erstellung durchgeführt wurde, wird nur der Inhalt der Datei geladen, nicht aber der Download angestoßen.
Code
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title> ajax download</title>
<script src="/js_webseite/jquery.js"></script>
</head>
<body>
<button type="button" >download</button>
<script>
$('button').click(function(){
let url = "/daten_webseite/kurzanleitungen_pdfa.pdf";
let new_filename="test_datei.csv";
$.ajax({
url: url,
dataType: 'binary',
xhrFields: {
'responseType': 'blob'
},
success: function(data, status, xhr) {
var link = document.createElement('a'),
filename = new_filename;
link.href = URL.createObjectURL(data);
link.download = filename;
link.click();
}
});
});
</script>
</body>
</html>