2015-03-03 21 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