繁体   English   中英

在Ajax回调(Safari)中调用引导模式显示

[英]calling bootstrap modal show in ajax callback (safari)

客户端向Rails控制器心跳发出请求。 心跳响应成功200OK或错误(未经授权)401。客户端每500毫秒发送一次此请求。

我想在ajax请求期间发生错误401时显示引导模态。 所以在我里面放了那个modal('show')但bootstrap modal被触发了。

这是在文档加载时添加引导模式的代码。

$(function(){
  $('body').append('<div id="confirm-logout-modal" class="modal hide fade" style="display: none;"> \
                  <div class="modal-header"> \
                    <h3 class="modal-title">Logout</h3> \
                  </div> \
                  <div class="modal-body"> \
                    <p> \
                      <span class="modal-main-message">You have been logged out</span> \
                    </p> \
                  </div> \
                  <div class="modal-footer"> \
                    <button id="btn-confirm" class="btn btn-success">Okay</button> \
                  </div> \
                </div> \
               ');

  $('#btn-confirm').click(function(){
    $('#confirm-logout-modal').modal('hide');
    window.location.reload();
  });
});

这是显示对Ajax错误回调进行引导的代码

function check_heartbeat(){
  $.ajax({
    type: 'GET',
    url: '/heartbeat',
    success: function(data){
      void(0);
    },
    error: function(response) {
      if(response.status == 401){
        clearInterval(heartbeat_id);
        $('#confirm-logout-modal').modal('show');;
      }
    }
  });
};

但是这里的问题是,当从ajax错误回调调用时,它没有显示模式弹出窗口。
我已经检查了谷歌浏览器没有错误在那里。 我也尝试调用modal('show')控制台,它确实显示弹出窗口。 我也尝试在文档加载时调用弹出窗口,然后又进行模式弹出窗口。


但是仅当从ajax错误回调中调用时,它才会产生问题


更多发现:
1.仅当在生产模式下启动Rails服务器时,才会发生此问题
2.仅显示背景,而不显示模式。 单击背景上的任意位置后,将显示模态。 那时背景关闭,并显示模式弹出窗口。
3.此问题仅在野生动物园中发生。
4.仅当野生动物园选项卡不清晰时,才会出现此问题。 如果我在同一选项卡上,则会显示弹出窗口。 但是如果让我说第二个选项卡,并且弹出式窗口显示在第一个选项卡上。 如果我切换回第一个标签,那么我只会看到背景幕。


这是JSFiddle代码http://jsfiddle.net/5y7725v5/取消该代码并快速切换到其他选项卡。 等待一段时间,然后切换回原始标签。 看不到弹出窗口。 现在运行代码,并停留在相同的选项卡上! 显示弹出窗口

仅在状态代码为401时显示,表示未经授权的访问

尝试检查状态码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM