我在客户端有JSON数组,在UI中呈现。 用户希望将内容下载为文件。如何将内容从客户端发送到服务器并作为文件下载。
我发现POST Ajax请求不允许我们下载文件。 我该怎么办?
答案 0 :(得分:1)
如果客户端中的内容仅 ,则必须将其发送到服务器。尝试这样的事情:
<a id="download_link">Download</a>
$('#download_link').on('click', function(e){
e.preventDefault();
window.location = 'my-handler.php?json=' + myJsonString;
});
// or without jQuery
document.getElementById('download_link').onclick = function(){
window.location = 'my-handler.php?json=' + myJsonString;
};
然后使用发送到服务器的数据作为文件内容强制下载my-handler.php
:
// Use equivalent in your server side script if not using PHP
$filename = 'download-'.time().'.json';
header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: Binary');
header('Content-disposition: attachment; filename="'.$filename.'"');
exit($_GET['json']);
使用此方法,不应更换当前窗口,但应启动下载提示,但如果您愿意,可以在新窗口中打开。
这是一个快速而肮脏的解决方案。请注意,这将允许用户输入任何内容并下载文件。至少首先验证内容可能是明智之举。内容可能也存在问题。