2015-10-20 56 views
1

我是CakePHP的新手,正在使用2.7.5版本。CakePHP REST + AngularJS - 如何在JSON中發送拒絕訪問響應?

我按照教程創建了一個基本的REST服務。

我現在使用基本身份驗證教程保護他們。

現在,我有一個AngularJS應用程序通過此REST服務,但需要一種方法來提示用戶登錄或說他們的帳戶無權訪問該資源。

現在,當進行REST調用並且他們沒有訪問權時,響應是重定向HTML頁面「/」或登錄。但我希望在JSON的響應消息,說「訪問被拒絕」或「會話是否請註冊..」等

我知道這是在cakephp的閃存變量,但我使用AngularJS。

所以我的問題是,如果用戶在登錄後無法訪問某個其他網址,我應該在cakephp中的哪個代碼發送json響應而不是HTML頁面重定向?

回答

0

您可以使用正確的狀態代碼(401)將響應頭返回給請求。

if(!$authorized){ 
    return header('HTTP/1.0 401 Unauthorized'); 
} 

您可以捕獲錯誤代碼在你請求的方法,例如Ajax請求

.error(status){ 
    switch(status.code) 
    { 
     case 401: 
      //Unauthorized 
     break; 
    } 
}