2015-06-28 34 views
1

我試圖將用戶重定向到登錄頁面,如果他/她不再登錄或沒有通過Ajax執行某些功能時的權限。爲了避免冗餘,我基於代碼找到了成功回調的包裝,我找到了here,它檢查控制器是否返回了not_logged_in來表示用戶沒有權限。如果用戶沒有權限,我使用自定義成功功能重定向用戶。 問題是它不會將用戶重定向到登錄頁面。相反,它只是在控制檯上打印登錄頁面,而實際的Ajax調用失敗。我應該在我的代碼中更改哪些內容?無法在Ajax封裝器中自定義成功回調內部重定向

這裏是阿賈克斯包裝:

function wrapped_ajax(options) { 
    var success = options.success; 
    options.success = function(data, textStatus, jqXHR) { 
     if(success) { 
      if (data.not_logged_in) { 
       window.location = 'login'; 
      } else { 
       success(data, textStatus, jqXHR); 
      } 
     } 

    }; 
    return $.ajax(options); 
} 

回答

0

使用window.location.href='http://'+document.domain+'/login'(或類似的創建正確的URL)來代替。

+0

相同的結果。它仍然只是在控制檯上打印登錄頁面。 – Compiler

+0

你沒有得到任何錯誤?試圖在jsfiddle重現問題導致我嘗試加載混合內容的錯誤。 –

+0

我的控制檯沒有收到任何錯誤。它只是調用Ajax的錯誤回調。 – Compiler