【发布时间】:2016-07-06 10:13:24
【问题描述】:
您好,我正在使用 Laravel 响应类生成 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的响应如下;
id,username,email,1,user1,user@email.com,2,user2,user2@email.com
关于如何强制下载此文件的任何想法
【问题讨论】:
标签: php jquery ajax laravel csv