1

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の方法(アクションへの単純なリンク)では完全に機能しますが、サーバーがリクエストを処理している間、スピナーアニメーションが必要です。

ありがとう-LuKe

4

1 に答える 1

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/

于 2012-11-02T23:43:05.123 に答える