GSP にこの ajax 呼び出しがあります。
$.ajax({
url: '${request.contextPath + '/Ticket/passAll'}',
type: 'POST',
data: data,
success: function() {
alert("Success");
}
});
これは、私のコントローラー アクションのコード ブロックです。
response.setHeader("Content-disposition", "attachment; filename=sample.csv")
response.contentType = "application/vnd.ms-excel"
def outs = response.outputStream
def cols = [:]
tickets.each() {
outs << it.ticketNo + ";" + it.subject
outs << "\n"
}
outs.flush()
outs.close()
$.Ajax メソッドを介してビューから渡すデータからチケット リストを取得します。そのデータを CSV としてフォーマットし、そのデータを CSV ファイルとしてエクスポートしたいのですが、何も起こりません。データはクライアントに送信されますが、コンテンツの配置が適切に形成されていないため、ダウンロードするファイルがありません。私は何が欠けていますか?私は次のようなことをしようとしました:
$.ajax({
url: '${request.contextPath + '/Ticket/passAll'}',
type: 'POST',
data: aoData,
dataType: 'text',
success: function(result) {
var uri = 'data:application/csv;charset=UTF-8,' + encodeURIComponent(result);
window.open(uri, 'tiketi.csv');
}
});
コントローラーでプレーン文字列を生成しますが、そのようにして、受け入れられない拡張子のないファイルを取得します。
どうすればこれを達成できますか?ありがとうございました。