Beim Umgang mit RESTful-Webdiensten kann die Handhabung von Antworten je nach Format variieren. In diesem Artikel wird ein spezifisches Szenario untersucht, bei dem das Ziel darin besteht, eine POST-Anfrage mit JSON-Daten zu senden und als Antwort eine herunterladbare Datei abzurufen, die den Browser zum Speichern auffordert.
Ein Ansatz besteht darin, einen Iframe zu erstellen und seine Quelle an den Hauptteil der Webseite anzuhängen. Dadurch wird die Download-Eingabeaufforderung des Browsers ausgelöst. Es ist jedoch wichtig zu beachten, dass diese Methode den vorhandenen Seiteninhalt beeinträchtigen kann, daher wird die Verwendung von appendChild anstelle von innerHTML empfohlen.
<code class="javascript">$.post('/create_binary_file.php', postData, function(retData) { var iframe = document.createElement("iframe"); iframe.setAttribute("src", retData.url); iframe.setAttribute("style", "display: none"); document.body.appendChild(iframe); });</code>
Ein jQuery- Eine basierte Alternative besteht darin, die Methode append() zu verwenden, um den Iframe zum Text hinzuzufügen.
<code class="javascript">$.post('/create_binary_file.php', postData, function(retData) { $("body").append("<iframe src='" + retData.url+ "' style='display: none;' ></iframe>"); });</code>
Beide Lösungen basieren auf der Annahme, dass die POST-Antwort eine „URL“-Eigenschaft enthält zeigt auf die herunterladbare Datei. Wenn der Iframe mit dieser URL zur Seite hinzugefügt wird, fängt der Browser die Anfrage ab und fordert den Benutzer auf, die Datei herunterzuladen. Dieser Ansatz erfordert eine ordnungsgemäße Konfiguration des MIME-Typs auf dem Webserver.
Während diese Lösungen einen praktikablen Ansatz für das Herunterladen von Dateien über POST-Anfragen bieten, ist es wichtig, insbesondere mögliche Einschränkungen und Nachteile zu berücksichtigen beim Umgang mit größeren Dateien. Darüber hinaus kann es erforderlich sein, zusätzliche Funktionen im AJAX-Erfolgshandler zu implementieren, um die Fehlerbehandlung zu ermöglichen und dem Benutzer Feedback zu geben.
Das obige ist der detaillierte Inhalt vonWie lade ich Dateien per POST mit JSON in JavaScript/jQuery herunter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!