我写了一个代码,可以将特定网页的
HTML
正文写入我的PDF文件。为此,我正在使用 mPDF
库。
这是发送到我的服务器的数据:
这是我的代码:
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错误。这是为什么?请帮助我。