2015-10-20 55 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; 
    } 
}