jquery.filedownloader没有达到完成或成功回调

时间:2015-06-23 10:21:16

标签: jquery laravel

我使用Snappy包装器在laravel(https://github.com/barryvdh/laravel-snappy)中生成PDF文件:

return \PDF::loadView( $view, $data )->download( 'Gender' );

然后使用jquery插件filedownloader(http://jqueryfiledownload.apphb.com/

下载文件
$(document).on('click','a#download-pdf', function(){
    $(this).attr('disabled','disabled').html('<img src="{!! secure_url("/img/ajax-loader.gif",[]) !!}"/>');
    $.fileDownload($(this).prop('href'), {
        successCallback: function( url ) {
            $('#download-pdf').removeAttr('disabled').text('Download pdf');
        },
        failCallback: function (responseHtml, url) {
            $('#download-pdf').removeAttr('disabled').text('Download pdf');
           alert('PDF creation failed, please try again');
        }
    });

    return false;
});

我也尝试过:

$(document).on('click','a#download-pdf', function(){
    $(this).attr('disabled','disabled').html('<img src="{!! secure_url("/img/ajax-loader.gif",[]) !!}"/>');
    $.fileDownload($(this).prop('href'))
        .done(function(){
                $('#download-pdf').removeAttr('disabled').text('Download pdf');
            })
        .fail(function(){ $('#download-pdf').removeAttr('disabled').text('Download pdf'); });
    return false;
});

文件正在成功下载,为什么回调没有被击中?

1 个答案:

答案 0 :(得分:0)

请确保您的页面没有阻止弹出窗口。 fileDownload使用iframe弹出文件。这将解决您的问题。