我在下面的test.php文件代码中调用了一个jQuery“GET”。
我正在尝试让脚本在生成的test.ini文件上弹出“另存为”对话框,以允许它在本地保存。但是,虽然我可以将结果回显给jQuery,但我似乎无法弹出“另存为”对话框。
更新:感谢下面的解决方案,我只是将$ .get更改为window.location.replace。
$('#test').click(
function()
{
//$.get('<?php echo get_bloginfo('template_directory') ?>/test.php');
window.location.replace("<?php echo get_bloginfo('template_directory') ?>/test.php");
}
);
答案 0 :(得分:8)
您无法获得显示“另存为”对话框的ajax请求,但您可以执行的操作是在页面中插入隐藏的iframe元素,然后将该iframe的源设置为您希望用户使用的网址下载。瞧,这是你的另存为。
这是一个复制和粘贴示例:
$('a#linky').click(function(){
var iframe = document.createElement("iframe");
iframe.src = 'http://example.com/branding.zip';
iframe.style.display = "none";
document.body.appendChild(iframe);
return false;
});
答案 1 :(得分:3)
您不需要AJAX。只需导航到有问题的php并在那个php中使用
header('Content-disposition: attachment;filename=whatever.dat');
这将弹出“另存为”对话框,您将保留在原始页面上。
答案 2 :(得分:1)
AJAX请求无法生成文件下载对话框。请考虑在新窗口中打开下载目标。