AJAX-Problem – Uncaught SyntaxError bei der Verarbeitung von Zip-Datei

Ich erstelle eine Anwendung, die es einem Benutzer ermöglicht, ein Formular auszufüllen und dann nach dem Abschicken eine angepasste Zip-Datei für sie herunterladen zu lassen. Ich benutze AJAX, um diese Aufgabe zu erfüllen.

Build.prototype.ajaxHandler = function(method, values) { jQuery.ajax({ type: 'POST', url: WP_LOCALIZED['url'], data: { action: 'request_handler', method: method, data: values }, success: function(data) { var response = jQuery.parseJSON(data); console.log(response); }, error: function(XMLHttpRequest, textStatus, errorThrown) { console.log(XMLHttpRequest, textStatus, errorThrown); } }); }; 

Immer wenn ich versuche, grundlegende Daten mit meinem Ajax-Handler zurückzugeben, kann ich ohne Uncaught SyntaxError: Unexpected token < zurückkehren, aber wenn ich versuche, meine Zip-Datei-Methode zu verarbeiten, bekomme ich immer Uncaught SyntaxError: Unexpected token < , obwohl die zip_file() -Methode nicht wirklich zurückkehrt irgendwelche Daten zurück zu der Javascriptmethode.

 /** * AJAX handler * * @return {json} * @since 1.0 */ public function request_handler() { $post = $_POST; $data = $post['data']; // If this wasn't here it would return my $data variable $this->zip_file(); die(json_encode($data)); } 

Ich habe auch die zip_file() -Methode selbst getestet, zip_file() ich sie in die function init() , und sie läuft genau so, wie ich es ohne zip_file() erwarten würde.

 /** * Create Zip File * * @return void * @since 1.0 */ public function zip_file() { $zip = new ZipArchive; if($zip->open('test.zip', ZipArchive::CREATE) === TRUE) { if($zip->addEmptyDir($this->_plugin_path . 'assets/temp_files')) { // Do stuff } $zip->close(); } header('Content-Type: application/zip'); header('Content-disposition: attachment; filename=filename.zip'); header('Content-Length: ' . filesize($zip)); readfile($zip); } 

Interessanterweise passiert das Gleiche, wenn ich den $this->zip_file() durch eine einfache echo statement $this->zip_file() . Außer mir zu sagen, dass das Unexpected token < , sagt es statt dessen.

Ich glaube, ich verstehe etwas Grundlegendes über die Art und Weise, wie diese beiden zusammen interagieren, aber bisher konnte ich keine Informationen darüber finden, was das sein könnte.

Jede Hilfe wäre willkommen.

Solutions Collecting From Web of "AJAX-Problem – Uncaught SyntaxError bei der Verarbeitung von Zip-Datei"