0
こんにちは私はLarvelsレスポンスクラスを使ってcsvを次のように生成しています。Laravel response ajax via csv
$output = 'id,username,email'. "\n";
foreach ($users as $user) {
$output .= implode(",", [
$user->id,
$user->username,
$user->email,
]) . "\n";
}
$headers = [
'Content-Type' => 'text/csv',
'Content-Disposition' => 'attachment; filename="users.csv"',
];
return \Response::make($output, 200, $headers);
通常の方法でフォームを送信すると機能します。しかし、私は次のようにajax経由でこれを行う場合、私はこのダウンロードをajax経由で行いたいです。
$(document).on('submit', 'form#export', function (e) {
e.preventDefault();
var myForm = $(this);
data = $(this).serialize();
//var
$.ajax({
url: myForm.attr('action'),
dataType: 'JSON',
data: data,
type: myForm.attr('method'),
success: function (json) {
console.log(json);
},
error: function (jqXhr, json, errorThrown) {
alert('An unexpected error occured, please try again or contact.');
}
});
});
これでファイルはダウンロードされませんが、代わりにajax経由での応答は次のようになります。私はあなたが現在それにajaxingルートのURLを返すそのルートのコントローラ機能1.In別のルート
を作成