2015-03-03 23 views
1

客户端请求导轨控制器心跳。心跳响应成功200OK或错误(未授权)401。客户端每500毫秒发送一次该请求。在ajax回调(safari)中调用bootstrap模式显示

我想在ajax请求期间发生错误401时显示引导模式。所以在里面我已经把这个模式('show'),但引导模式正在被触发。

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

$(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');; 
     } 
    } 
    }); 
}; 

引导代码,但这里的问题是,它没有显示从阿贾克斯错误回调时调用模式弹出。
我已经检查过谷歌浏览器没有错误。另外我试着调用模态('show')控制台,它显示弹出窗口。此外,我试图调用弹出文件加载,然后也模式弹出式作品。


但仅从阿贾克斯错误回调叫时,它提供问题


更多的发现:
1.只有在轨服务器在生产模式下启动
2.只有背景是发生此问题显示,但没有模态。在我点击背景上的任何位置后显示模态。该时间背景被关闭并显示模态弹出。
3.这个问题只发生在safari上。
4.只有在Safari浏览器标签焦点不清的情况下,才会出现此问题。如果我在同一个选项卡上并弹出显示。但如果我在允许说第二个选项卡和弹出窗口正在显示在第一个选项卡上。如果我切换回第一个标签,那么我只能看到背景。


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

+1

你有额外的','在你的错误回调的模式显示。 – 2015-03-03 05:17:47

+0

是的。但它不会导致任何问题。 – 2015-03-03 05:19:50

+0

您的代码中显然还有更多内容出现。如果您发布了一个jsfiddle或一个演示您的确切问题的解决方案,我们将能够更轻松地帮助您。去掉所有与您确切问题无关的代码,使其在可重现的环境中失败,其他人可以帮助您调试代码。 – skeggse 2015-03-03 05:26:35

回答

-2

,只显示在状态代码是401这意味着未经授权的访问

尝试查看状态代码

+0

我确实从心跳控制器发送401。 – 2015-03-03 06:55:30