Dieses Mal werde ich Ihnen eine detaillierte Erklärung der Datei-Download-Funktion geben. Was sind die Vorsichtsmaßnahmen für die Ajax-Implementierung der Datei-Download-Funktion? ist ein praktischer Fall, werfen wir einen Blick darauf.
Die Rückgabetypen der Ajax-Funktion von JQuery sind nur XML, Text, JSON, HTML und andere Typen, und es gibt keinen „Stream“-Typ. Wenn wir also den Ajax-Download implementieren möchten, können wir den entsprechenden Ajax nicht verwenden Funktion zum Herunterladen von Dateien. Sie können jedoch js verwenden, um ein Formular zu generieren, dieses Formular zum Senden von Parametern verwenden und Daten vom Typ „Stream“ zurückgeben. Während des Implementierungsprozesses wurde die Seite nicht aktualisiert.
1. Bei Verwendung von Ajax ist der Rückgabewerttyp von Ajax der Typ JSON, Text, HTML, XML, oder es kann gesagt werden, dass das Senden und Empfangen von Ajax nur eine Zeichenfolge sein kannZeichenfolge und kann nicht gestreamt werden, sodass das Herunterladen von Dateien nicht möglich ist und es bei erzwungener Verwendung zu Antwortkonflikten kommt. Wenn Sie Ajax verwenden müssen, können Sie die generierte dateibezogene URL nur durch Rückgabe des Werts abrufen. Erstellen Sie dann einen Iframe in der Callback-Funktion und legen Sie seinen Quellwert auf die Datei-URL oder eine Verarbeitungs-URL für den Dateigenerierungsstream fest. Auf diese Weise kann die Datei heruntergeladen werden, ohne die Seite zu aktualisieren.
2. Ohne die Verwendung von Ajax kann dies durch dynamisches Bedienen von dom oder Erstellen eines Iframes oder Formulars erreicht werden. Die Seite wird beim Herunterladen der Datei nicht aktualisiert Die Datei kann auch direkt über die Antwort-Stream-Ausgabe heruntergeladen werden. Die Form besteht darin, dass die Stream-Verarbeitungs-URL über die Antwort-Stream-Ausgabe heruntergeladen wird Aktualisierung der Seite. Um denvar title=$("input[name='gjzSelect']").val(); var rqTime = $(".ui-datepicker-time").val(); var ddd= rqTime.split("一"); var startTime=ddd[]; var endTime=ddd[]; var form = $("<form>"); //定义一个form表单 form.attr('style', 'display:none'); //在form表单中添加查询参数 form.attr('target', ''); form.attr('method', 'post'); form.attr('action', "<%=basePath%>jiankong/madeExcel.do"); var input = $('<input>'); input.attr('type', 'hidden'); input.attr('name', 'startTime'); input.attr('value', startTime); var input = $('<input>'); input.attr('type', 'hidden'); input.attr('name', 'endTime'); input.attr('value', endTime); var input = $('<input>'); input.attr('type', 'hidden'); input.attr('name', 'title'); input.attr('value', title); $('body').append(form); //将表单放置在web中 form.append(input); //将查询参数控件提交到表单上 form.append(input); form.append(input); form.submit(); <%-- $.ajax({ url:'<%=basePath%>jiankong/madeExcel.do', cache:false, data:{ 'startTime':startTime, 'endTime':endTime, 'title' :title }, error:function (e){ alert("导出失败!"); }, success:function (data){ alert("导出成功!"); } }); --%>
Anpassung der Ajax-Ausführungsreihenfolge in jquery
Detaillierte Erläuterung der Ajax- und $.ajax-Beispiele
So erstellen Sie eine Ajax-Anfrage für die Überwachungsseite mit jQuery
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Ajax-Implementierung der Datei-Download-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!