我正在尝试下载由AngularJs中的laravel生成的pdf文件。到目前为止,我已经能够从laravel获取该文件但是当我单击该操作时,Angular不会下载该文件,而只返回包含该文件的响应,如下图所示。
Response from laravel returns pdf file
如何获取要下载的文件?
Laravel
public function getPrintInvoice()
{
$pdf = PDF::loadView('crystal.invoice');
return $pdf->download('hello.pdf');
}
角
$http.get('print-invoice');
答案 0 :(得分:1)
由于$http.get()
使用对服务器的异步调用,因此XMLHttpResponse对象捕获响应,而不是直接呈现给用户。向用户呈现PDF的最简单方法是跳过角度呼叫,例如,使用$location.url('/print-invoice');
或$window.open('/print-invoice');
如果您想坚持使用$http
方法(例如,如果您希望能够根据文件获取的成功或失败执行某些操作),您需要捕获返回值从下载并使用HTML5 Blob methods。我建议使用类似Angular File Saver的内容。但它确实需要在服务器端进行更多工作,以确保数据位于correct format。