mPDF:在实时服务器中下载 PDF 文件会抛出 403 禁止错误,但在本地主机服务器中下载成功

问题描述 投票:0回答:0

我写了一个代码,可以将特定网页的

HTML
正文写入我的PDF文件。为此,我正在使用
mPDF
库。

这是发送到我的服务器的数据:

enter image description here

这是我的代码:

JS:

function download(){
    return $.ajax({
              url: '/backend_pdfgen/pdfgen.php',
              type: 'POST',
              data:{
                   "pos_news_table": JSON.stringify(pos_links_snaps),
              },
              cache: false
          });
}
document.getElementById('download_pdf').addEventListener('click',function(){
    (async()=>{
        try{
            let response = await download();
            console.log(response)
        }catch(err){
            alert(err.status);
        }    
    })();
})

PHP:

(我的服务器脚本很大,所以我只在这里粘贴了一部分脚本)

<?php
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    header('Content-Type: text/plain; charset=utf-8');
    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
    require_once __DIR__ . '/vendor/autoload.php';

    $mpdf = new \Mpdf\Mpdf(['setAutoTopMargin' => 'stretch','mode' => 'UTF-8']);

    $data_1 = json_decode($_POST["pos_news_table"],true);
    foreach($data_1 as $k=>$v){
        $split_val = explode("**",$v);
        $title = $split_val[1];
        $image = $split_val[0];
        $body = $split_val[2];
        $mpdf->WriteHTML('<div style="text-align:center";><table style="background-color:rgb(253, 188, 104);">
        $mpdf->WriteHTML('<tr>
                <td style="border: 3px solid rgb(87, 59, 22); text-align:center; width:350px; height:25px; font-size: 15px;">'.$name.'</td>
                <td style="border: 3px solid rgb(87, 59, 22); text-align:center; width:350px; height:25px; font-size: 15px;">'.$category.'</td>
            </tr>');
        $mpdf->WriteHTML('</table></div><br>');
        $mpdf->WriteHTML('<div style="text-align:center;"><img src="../'.$image.'"></div>');

        /* ..................*/
    }
    $mpdf->Output("reports/report.pdf");
?>

当我下载

pdf
时,我的实时服务器出现
403
禁止错误。但是当我在我的
local
服务器上运行相同的代码时,pdf 被下载而没有任何错误。

我花了几个小时寻找原因,但找不到任何原因。令人惊讶的是,只有当我发送上面的数据(在屏幕截图中发布)时才会发生此错误。我已经尝试将其他随机数据发送到服务器,然后不会出现

403
错误。

只有在这种情况下,才会显示403错误。这是为什么?请帮助我。

javascript php pdf https mpdf
© www.soinside.com 2019 - 2024. All rights reserved.