Helo, saya mempunyai bahagian hadapan VUEJS 3 dan bahagian belakang Laravel 8. Saya akan memuat turun pdf yang disimpan dalam public/pdf/temp/file.pdf
Sekarang saya membuat panggilan daripada VUEJS:
axios.post('/api/'+ this.url_access +'/rebuild', formData, { headers: { 'Content-Type': 'multipart/form-data', 'responseType': 'blob' }}) .then(response=>{ if(response.status == 200){ const url = window.URL.createObjectURL(new Blob([response.data])); const link = document.createElement('a'); link.href = url; link.setAttribute('download', 'test.pdf'); document.body.appendChild(link); link.click(); } }) .catch(error=>{ console.log(error); })
Di bahagian belakang saya mempunyai fungsi yang mengembalikan fail pdf:
try{ $headers = [ 'Content-Type' => 'application/pdf', ]; return response()->download($file_path, $workspace['name'] . '_' .date("Ymd").'.pdf', $headers)->deleteFileAfterSend(true); }catch(Exception $e){ return $e->getMessage(); }
Tetapi saya memuat turun pdf dengan kandungan kosong.
Ada sesiapa terfikir tentang isu ini?
Dalam Laravel
Dalam Vue js
Jawapan
responseType ialah adik beradik header, bukan kanak-kanak
Terima kasih Phil atas bantuan.