mpdf 在邮递员工作但不在 chrome

mpdf working in postman but not in chrome

我正在尝试使用 mpdf 生成和下载 pdf。它在邮递员中工作正常,但当我在 chrome 中尝试时,它就不起作用了。

这是我的 angular 休息要求

 $http({
    url: 'http://localhost:8080/services/generatePDF?uniqueID=INV0005',
    method: 'GET',
    headers: {
        'securityToken': '123',
        'Content-Type': 'application/json'
    }
 }).then(function(res) {
    console.log(res)
 }, function(ress) {
    console.log(res)
 })

这是我的 php 代码

header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="filename.pdf"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');


$pdf= new mPDF(); 
$pdf->SetHTMLFooter('<span style="color:#a1a1a1;font-size:12px;padding-left:100px;"> powered by 12thdoor </span>');
$pdf->WriteHTML($stylesheet,1);
$pdf->WriteHTML($body,2);
$pdf->Output('filename.pdf', 'D'); 

这是我遇到的错误

bc81
%PDF-1.4
%    
3 0 obj
<</Type /Page
/Parent 1 0 R
/MediaBox [0 0 595.280 841.890]
/TrimBox [0.000 0.000 595.280 841.890]
/Resources 2 0 R
/Group << /Type /Group /S /Transparency /CS /DeviceRGB >> 
/Contents 4 0 R>>
endobj
4 0 obj
<</Filter /FlateDecode /Length 1334>>
stream
x  Y n F g} 

我已经尝试在 angularjs 中使用 application/pdf 内容类型 header 但仍然没有 working.thank 你

如何使用 AngularJS

下载二进制文件

下载二进制文件时,设置 responseType:

很重要
$http({
    url: 'http://localhost:8080/services/generatePDF?uniqueID=INV0005',
    //SET responseType
    responseType: 'blob',
    method: 'GET',
    headers: {
        'securityToken': '123',
        'Content-Type': 'application/pdf'
    }
 }).then(function(response) {
    console.log(response.data);
 }, function(response) {
    console.log(response.status);
 })

如果省略 responseType,则 XHR API 默认转换 UTF-8 encoded text to DOMString (UTF-16),这会损坏 PDF 和图像文件。

有关详细信息,请参阅 MDN Web API Reference - XHR ResponseType