jQueryを使ってPOST送信でファイルをダウンロードする方法

$.ajax でも $.get でも $.post でもできないことはないんですが、ヘッダーを作成して送り込んだりしないといけないのでめんどくさいんですよ。
で、もっとシンプルに行う方法。

ボタンがクリックされたら、jQueryを使ってフォームを作成→送信→フォーム削除という流れです。
送信先のファイルのヘッダーに下記が設定されてれば、ダウンロードされると思います。

<?php
header('Content-Type: application/force-download;');

javascriptのコードはこちら

$("#download").on('click',function(){
	$('<form/>',{action:'file_path.php', method:'post'})
		.append($('<input/>', {type: 'hidden', name: "foo", value: "bar"}))
		.appendTo(document.body)
		.submit()
		.remove();
});
SNSでシェア