jQuery ajax - 从ajax请求输出文件

时间:2012-11-02 22:47:16

标签: ajax jquery httpresponse

是否可以输出文件作为来自ajax调用的响应? 我编写了一个使用ajax调用输出zip文件的函数,这是代码:

<script type="text/javascript">

    $(document).ready(function () {

        $(".ziplink").click(function (e) {
            e.preventDefault();
            var url = $(this).attr('href');
            var spinner = $(this).parent().children(".spinnerbox");
            spinner.show();
            $.ajax({
                url:url,
                type:"GET",
                dataType:"application/x-zip-compressed",
                success:function (data) {
                    console.log('success');
                    spinner.hide();

                },
                error:function () {
                    console.log('ko');
                    spinner.hide();
                }

            });
        });

    });
</script> 

现在,从firebug控制台一切都很好,但我没有文件输出。缺少什么?

虽然这在非ajax方式(操作的简单链接)中完全有效,但我希望在服务器处理请求时拥有微调器动画。

thanx - LuKe

1 个答案:

答案 0 :(得分:1)

$(".ziplink").click(function (e) {

    e.preventDefault();
    var _self = $(this);
    $('.spinner').show();

    $.ajax({
        type : 'HEAD',
        url : _self.attr('href'),
        complete : function(){

            $('.spinner').hide();
            var _tmp = $('<iframe />')
                .attr('src', _self.attr('href'))
                .hide()
                .appendTo(_self)
                setTimeout(function(){
                    _tmp.remove();
                },5000);

        }

    });

});

演示http://jsfiddle.net/4sMsr/3/