Ajax请求通过post请求获取文件

时间:2014-02-25 10:06:57

标签: javascript jquery

我有一个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

                  }
                });

                }

提前致谢

1 个答案:

答案 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?

这也意味着你强迫用户使用他们可能不喜欢的东西。

第三种方法可以为他们提供选择,无论是在线下载还是在线阅读。