ボタンをクリックすると、txtファイルを強制的にダウンロードしようとしています。コンテンツは動的に生成され、javascript 変数に格納されます。ボタンをクリックしてもダウンロード ウィンドウは表示されませんが、ajax 呼び出しは成功します。私は何を間違っていますか?
php:
<?php
$Proof = $_REQUEST["Proof"];
$proof = stripslashes($Proof);
$file = 'savedproof.txt';
file_put_contents($file, $proof);
header('Content-disposition: attachment; filename="'.$file.'"');
header("Content-Type: application/octet-stream");
header("Content-Transfer-Encoding: binary");
header('Content-Description: File Transfer');
readfile($file);
?>
ジャバスクリプト:
$("#save").click(function () {
var proof = $("#main").html();
$.ajax({
type: 'POST',
url: 'save-to-file.php',
data: {Proof: Proof},
dataType: "html"
});
}
別の方法として、window.location.href を使用してみましたが、変数 Proof を php ファイルに渡すことができませんでした。私はこのようなことを試しました:
window.location.href ="download.php?Proof="+Proof;
ダウンロード ダイアログは表示されますが、変数 Proof の最初の部分だけがファイルに含まれています。私はFirefoxとChromeで両方の方法をテストしました。