簡體   English   中英

強制 ajax 響應從 ajax 調用 Laravel 和 Maatwebsite 下載 Excel 文件

[英]Force ajax Response download Excel file from ajax call in Laravel and Maatwebsite

在此處輸入圖像描述

我有下面的頁面,我打算使用 Ajax 調用實現復選框批量導出。我能夠在 ajax 調用后獲取數據問題是我無法強制 ajax 響應下載 excel

 $(document).on('click', '#selectAll', function() { $(".order").prop("checked", this.checked); var total=$("input.order:checked").length + " Orders Selected"; $('#selected').html(total); }); $(document).on('click', '.order', function() { if ($('.order:checked').length == $('.order').length) { $('#selectAll').prop('checked', true); } else { $('#selectAll').prop('checked', false); } var total_single=$("input.order:checked").length + " Orders Selected"; $('#selected').html(total_single); }); $(document).ready(function() { $('#export_records').on('click', function(e) { e.preventDefault(); var orders = []; $(".order:checked").each(function(){ orders.push($(this).val()); }); if (orders.length <= 0) { alert("Please select records."); } else { var selected_values = orders; $.ajax({ type: "GET", url: "{{route('mfiint_export_bulk')}}", cache: false, data: {'orders':selected_values,"_token":"{{ csrf_token() }}"}, success:function(data){ } }); } }); });

以上是我的 ajax 調用代碼 我能夠得到響應,因為我能得到響應 url,當我在新選項卡中打開鏈接時,它會下載 excel 但我無法執行應該自動下載的代碼在此處輸入圖像描述

當我在 .net 選項卡中打開它時,最后一個 Get url 下載 excel 但這應該由我已經嘗試了很多但它不起作用的 javascript 代碼完成

我的 controller 響應返回 Excel::download(newmfiintBulkExport($purchases_bulk),'bulkorders.xlsx');

出口 Class

 public function __construct($purchases_bulk) { $this->purchases_bulk=$purchases_bulk; } public function view(): View { return view('mfiint.bulk_orderexport',['purchases_bulk'=>$this->purchases_bulk]); } }

您可以下載並安裝js-file-download
如果你在你的文件中包含庫,你可以像這樣使用它:

import fileDownload from 'js-file-download';
fileDownload(response.data, 'filename.extension');

經過多次試驗,我最終設法獲得了一個適合我的腳本

 success: function (response) { var link = document.createElement('a'); link.href = window.URL.createObjectURL(response); link.download = `bulk_orders.xlsx`; link.click(); }, fail: function(response) { alert('Not downloaded'); //console.log('fail', data); } });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM