Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

401
Vistas
Cómo descargar un archivo CSV en el backend después de una solicitud de AJAX

Que estoy haciendo:

Los datos que quiero imprimir en el archivo csv se envían a un backend PHP/laravel desde un frontend JS/vue

Los datos se envían a través de una solicitud axios.post a una función de controlador de laravel

Qué ocurre

El archivo csv no se descarga cuando se presiona la función (todos los datos se reciben en el backend)

Qué esta pasando

En lugar de descargar un archivo CSV, la función simplemente devuelve los datos

Aquí estoy yo enviando datos al backend

 printReport() { axios.post('/admin/assignments/printReportData', { 'assignments': this.reportAssignments, 'users': this.reportUsers }) }

La función de backend está siendo golpeada

 public function printReportData(Request $request) { $assignments = $request->assignments; $users = $request->users; header('Content-Type: text/csv; charset=utf-8'); header('Content-Disposition: attachment; filename=sales-by-item-per-customer' . date('YmdHi') . '.csv'); $output = fopen("php://output", "w"); fputs($output, $bom = (chr(0xEF) . chr(0xBB) . chr(0xBF))); foreach ($assignments as $assignment) { fputcsv($output, [$assignment['name']]); foreach ($users as $user) { //get all user ids in specific assignment responses array $userIdArray = array_column($assignment['response'], 'user_id'); //get array of current assignment response if (in_array($user['id'], $userIdArray)) { fputcsv($output, [$assignment['name'], $user['name'], 'Completed']); } else { fputcsv($output, [$assignment['name'], $user['name'], 'Not Complete']); } } } fclose($output); }

Después de presionar la función anterior, los datos se repiten y se devuelven; puedo verlo a través de las herramientas de desarrollo

El CSV nunca se descarga

lo que he intentado

Traté de forzar la descarga de diferentes maneras:

después de fclose($salida); he intentado exit(); y muere(); pero nada ha forzado el inicio de la descarga

El código de back-end en la función anterior funcionó en una carga de página completa, pero no cuando intento hacerlo a través de axios

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda