私は問題を解決しました。私はそれを2つのステップで行いました。まず、ajax を使用して、ベース URL と URL パラメーターをローカル サーバー上の php スクリプトに送信します。jQuery で簡単に実行できます。
jQuery.ajax({
type : "POST",
url : './includes/php/userdata.php',
data: { method: 'get_print_version',
url: base_url,
parameter: query_parameter,
num: num_parameter },
error: function(error) {
console.log("Print version failed");
},
success: function(reault) {
console.log("What is the result?");
}
});
サーバー スクリプトは、cURL を使用してデータを最終サーバーに送信します。したがって、ベース URL とパラメーターは 1 つの URL として投稿されるのではなく、CURLOPT_POST と CURLOPT_POSTFIELDS を使用して分離されます。サーバーの応答 (pdf) は、file_put_contents を使用してファイルに書き込むことができます。PDF が大きくなると、ここでメモリ制限エラーが発生します。cURL からの回答を pdf ファイルに直接書き込むよりも優れています。
if ($_method == 'get_print_version')
{
$url = $_REQUEST['url'];
$parameter = $_REQUEST['parameter'];
$num = $_REQUEST['num'];
$post = curl_init();
curl_setopt($post, CURLOPT_URL, $url);
curl_setopt($post, CURLOPT_POST, $num);
curl_setopt($post, CURLOPT_POSTFIELDS, $parameter);
/* write calendar directly to file */
$pdf = fopen('./Calendar.pdf', 'w');
curl_setopt($post, CURLOPT_FILE, $pdf);
curl_exec($post);
curl_close($post);
echo $result;
}