我正在尝试从MySQL数据中导出一些用PHP生成的表。我正在尝试通过AJAX将信息发送到包含以下代码的文件:
<?php
header("Content-type: application/vnd.ms-excel; name='excel'");
header("Content-Disposition: filename=excel.xls");
header("Pragma: no-cache");
header("Expires: 0");
echo $_POST['table'];
?>
数据来自此功能
function export_excel (id_table) {
var table = $("#" + id_table).html();
$.ajax({
type: 'POST',
url: 'toexcel.php',
data: 'table='+table
});
}
通过Firebug我可以看到表格被正确回显,但它没有开始任何下载。哪个可能是问题?
答案 0 :(得分:2)
无法启动文件下载作为对Ajax请求的响应。您必须发送浏览器才能获取资源,就像导航到某个页面一样。
如果您需要使用POST方法,我认为理想的方法是:
有一个真正的<form>
元素,您可以在其中编写POST数据
有一个隐形或小iframe
。给它起个名字
将表单作为target
属性
submit()
表格
如果所有标头都设置正确(您可能需要添加更多标头,例如Content-disposition: attachment
),则应触发文件下载而不会影响当前页面。
如果您可以使用GET
,那就简单
location.href="toexcel.php?param1=value1¶m2=value2"
应该已经。