データを収集し、csvファイルをダウンロードするエンドポイント「/ downloadUserAction」があります。私が抱えている課題は、クリック機能のボタンを使用してエンドポイントを呼び出すときにファイルがダウンロードされないことですが、ブラウザでエンドポイントに直接アクセスするときだけダウンロードされます。AJAXリクエストの応答としてcsvファイルをダウンロード
私は研究の結果、AJAXを使ってファイルをダウンロードできないとの結論に達しました。これは理にかなっています。私のボタンをクリックすると、エンドポイントがヒットし、ファイルの内容がネットワークタブに渡されますが、ファイルはクライアントにダウンロードされません。
これは私のエンドポイントを呼び出すために私のページのデータテーブルのボタンプラグイン機能を使用してJavaScript側で行うことだけです。
$(document).ready(function() {
var table = $("#userActivity").on('init.dt', function() {
}).DataTable({
dom: 'Blfrtip',
buttons: [
{
extend: 'csvHtml5',
text: 'NLP Search Download',
action: function (e, dt, node, config) {
$.ajax({
url : window.location + "/downloadUserAction?draw=3&search%5Bvalue%5D=NLP_SEARCH&order%5B0%5D%5Bcolumn%5D=6&order%5B0%5D%5Bdir%5D=desc"
});
}
}
],
クライアントページで強制的にダウンロードするエンドポイントを呼び出す別の方法はありますか?
side-note:私のデータテーブルはサーバーサイドの処理を使用しています。そうでなければ、datatables csv exportingボタンを使用しました。最近のブラウザで