Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Angular.js 1.2.1设计执行重定向_Ruby On Rails_Angularjs_Devise - Fatal编程技术网

Ruby on rails 使用Angular.js 1.2.1设计执行重定向

Ruby on rails 使用Angular.js 1.2.1设计执行重定向,ruby-on-rails,angularjs,devise,Ruby On Rails,Angularjs,Devise,我用angular 1.0.8做了一个项目,设计了最后一个版本,在Rails 4上,一切都很好,当我没有登录就请求api时,设计发送了respond 401。 拦截器得到了401并按我想要的方式处理。 但后来决定升级到最新的稳定版本1.2.1,一切都很好(只需要更改拦截器,而不是返回函数,而是返回对象),但出于某种原因,Desive现在重定向到注册页面,而不是发送401响应,不确定发生了什么,因为我测试的控制器响应状态为::unauthorized,我的拦截器做得很好。迁移到1.2.1时,有人已

我用angular 1.0.8做了一个项目,设计了最后一个版本,在Rails 4上,一切都很好,当我没有登录就请求api时,设计发送了respond 401。 拦截器得到了401并按我想要的方式处理。 但后来决定升级到最新的稳定版本1.2.1,一切都很好(只需要更改拦截器,而不是返回函数,而是返回对象),但出于某种原因,Desive现在重定向到注册页面,而不是发送401响应,不确定发生了什么,因为我测试的控制器响应状态为::unauthorized,我的拦截器做得很好。迁移到1.2.1时,有人已经遇到此问题?正如我所说,我所更改的唯一代码是拦截器本身(它与我的401响应配合得很好)。 我得到的只是一个302状态码

拦截器代码:

.config(function($httpProvider){

var interceptor = function($q, $location, $rootScope) {
return {
  'responseError': function(rejection) {
    if (rejection.status == 401) {
      $rootScope.$broadcast('event:unauthorized');
      console.log('got you trying to do something illegal...')
      return rejection;
    }
    return $q.reject(rejection);        
  }
};
 };
  $httpProvider.interceptors.push(interceptor);
})
更新

因此,经过一段时间的尝试,我意识到使用angularjs 1.2.1获得401,并设计出我需要:

将.json格式添加到所有需要验证的服务url(例如:
api/events/:id.json

确保
config/initilizers/designe.rb上的
config.navigational\u formats=[]
的数组中没有
:json

并确保_xhr=true
上的
config.http\u authenticable\u设置为
true

但我仍然有一个问题,为什么在Angular.js 1.0.8上,即使
导航格式
数组具有
:json
,而服务没有
。json

这就是现在的路吗?