我有一个Ajax发布请求,可能会收到静态文件作为响应,但我不知道如何向客户端显示该文件。我的意思是通过发布请求下载功能。
这是我的样本ajax请求:
function Getfile(id)
{
var mhost='http://myhost/post';
$.ajax({
type: 'POST',
url: mhost,
data: { task: 'getfile', id: myid },
beforeSend:function(){
// this is where we append a loading image
},
success:function(data){
// successful request; how to show file to the user for download?
},
error:function(){
// failed request; give feedback to user
}
});
}
提前致谢
答案 0 :(得分:0)
一种方法是将它们视为任何其他html并在浏览器中显示;
success:function(data){
// successful request; how to show file to the user for download? },
location.href = data;
对于PDF,拥有PDF查看器的用户可能会直接看到它,而没有PDF查看器的用户则会收到下载请求。
对于TXT,大多数用户可能会直接看到它,其余用户将收到下载请求。
浏览器采取的操作取决于浏览器设置。
您可以使用内容标题以其他方式执行此操作。此链接有关于此的更多信息:How do I force download with HTML/JavaScript?
这也意味着你强迫用户使用他们可能不喜欢的东西。
第三种方法可以为他们提供选择,无论是在线下载还是在线阅读。