Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

409
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda