Ich habe eine Lösung gefunden, die zwar nicht wirklich Ajax verwendet, es aber erlaubt, einen Javascript-Aufruf zu verwenden, um den Download anzufordern und dann einen Rückruf zu erhalten, wenn der Download tatsächlich beginnt. Ich fand dies hilfreich, wenn der Link läuft ein Server-Side-Skript, das ein wenig dauert, um die Datei vor dem Senden zu komponieren. so können Sie sie alarmieren, dass es die Verarbeitung ist, und dann, wenn es schließlich die Datei zu senden, entfernen Sie diese Verarbeitung Benachrichtigung. das ist, warum ich wollte versuchen, die Datei über Ajax zu laden, um mit zu beginnen, so dass ich ein Ereignis passieren, wenn die Datei angefordert wird und eine andere, wenn es tatsächlich beginnt das Herunterladen haben könnte.
die js auf der Titelseite
function expdone()
{
document.getElementById('exportdiv').style.display='none';
}
function expgo()
{
document.getElementById('exportdiv').style.display='block';
document.getElementById('exportif').src='test2.php?arguments=data';
}
der iframe
<div id="exportdiv" style="display:none;">
<img src="loader.gif"><br><h1>Generating Report</h1>
<iframe id="exportif" src="" style="width: 1px;height: 1px; border:0px;"></iframe>
</div>
dann die andere Datei:
<!DOCTYPE html>
<html>
<head>
<script>
function expdone()
{
window.parent.expdone();
}
</script>
</head>
<body>
<iframe id="exportif" src="<?php echo "http://10.192.37.211/npdtracker/exportthismonth.php?arguments=".$_GET["arguments"]; ?>"></iframe>
<script>document.getElementById('exportif').onload= expdone;</script>
</body></html>
Ich denke, es gibt einen Weg, um Daten mit Js zu lesen, so dass dann kein PHP erforderlich wäre. aber ich weiß es nicht aus der Hand und der Server, den ich verwende, unterstützt PHP, so dass dies für mich funktioniert. dachte ich würde es teilen, falls es jemandem hilft.