[CakePHP]ダウンロード後にページをリロードしたい

データをダウンロード処理したときにフラグを立てるなど色々処理をしている。
ダウンロード後にリダイレクトかリロードをしたいと思った。

ダウンロードの処理でheaderを使っているのでリダイレクトのLocationが使えない。

そこでJSで別ウインドを開いて、そこにダウンロード処理を渡す。
その処理の後にページをリロードする処理をしてあげるとOK。

$(function(){
	// ダウンロードボタン
	$('#order_export_btn').on('click', function() {
		window.open('<?= $this->Url->build(["controller" => "Hoge","action" => "download"], ['fullBase' => true]); ?>');// URLを開く
		setTimeout(reload, 1000);// 1秒後にリロード実行
	});
});

// ページリロードの処理
var reload = function(){
	location.reload(true);
};

リダイレクトしたい場合はreloadのところをhrefにするとOK

// リダイレクトの処理
var reload = function(){
	location.href = "https://zero-one-x.com/";
};