Ajax进行了调查,而其他请求已发送不在Safari上



我在网站上有一个页面,您可以在其中下载以前付款的文件。该文件是包含许多PDF文件的邮政编码。单击下载链接时,将调用一个PHP文件,该文件在提供文件之前进行一些工作(在PDF上添加邮票(。因为这可能需要一些时间在较大的文件上,所以I'V在投票机制中构建,以向用户展示正在发生的事情。民意调查是通过看起来像这样的Ajax调用来完成的:

$('.rm-table').on(clickhandler,'.fa-download', function(e){
    tr = $(this).closest('tr');
    id = tr.attr('id');
    tr.find("progress").show();
    tr.find('.downloadstatus').show();
    tr.find('.downloadstatus').html('Start Download...');
    setTimeout(getDownloadStatus(), 250);
});
function getDownloadStatus(){
    setTimeout( function() {
        $.ajax({
        url: '/process/{{Auth::id()}}/'+id,
        type: 'POST',
        async: true,
        cache: false,
        data: {},
        dataType: "json",
        success: function(data, textStatus, jqXHR)
        {
                var tekst = data.tekst;
                var perc = data.percentage;
                 tr.find('.downloadstatus').html(tekst);
                 tr.find('progress').val(perc);
                 if(tekst != 'done'){
                    getDownloadStatus();
                 } else {
                    tr.find('.downloadstatus').html("Done!");
                    tr.find('progress').val(100);
                            setTimeout(
                              function() 
                              {
                                tr.find('progress').val(0);
                                tr.find('progress').hide();
                                tr.find('.downloadstatus').html("");
                                tr.find('.downloadstatus').hide();
                              }, 750);
                 }
        },
        error: function(jqXHR, textStatus, errorThrown) {
                var response = jQuery.parseJSON(jqXHR.responseText);
                    alert(response.error);
        }
        });
      }, 250);         
}

用户单击链接后进行轮询。因此,不能阻止链接的默认行为。

这在Windows上的所有浏览器上都可以正常运行,但是在Mac上的Safari或iPad上的其他浏览器上,投票却没有以某种方式启动。任何人都知道有什么问题?

好的,所以问题是与Windows上的浏览器不同,Safari似乎在单击链接时在页面上停止了Al JavaScript活动。因此,尽管"另一页"仍在加载,无论是重定向还是下载,AJAX进行了投票。我也通过通过Ajax请求文件来解决它。如果javaScript不可用,则仍然允许后备。

相关内容

  • 没有找到相关文章

最新更新