Angularjs ui-router阻止访问非状态路由

时间:2014-06-24 03:48:51

标签: angularjs web angular-ui angular-ui-router

我在一个有角度的网站上使用ui-router,但是不能让它允许路由到我的服务器。我在我的服务器上有facebook oauth身份验证,我导航到/auth/facebook,服务器将重定向到fb,拦截回调并将客户端重定向回主页。

在浏览器中导航到/auth/facebook网址时工作正常,但工作正常,但ui-router会查看位置并拦截我所有的位置更改。

我是如何制作网址请求绕过$urlRouterProvider.otherwise(...)语句以允许路由到我的api服务器的?我尝试过与路由器提供商添加路由重定向,但它不会触发远程呼叫。

2 个答案:

答案 0 :(得分:6)

感谢angular-dart的工作人员:作为解决方法,您可以创建一个ng-click处理程序,window.location.assign('/auth/facebook')绕过路由器

答案 1 :(得分:3)

您可以使用$urlRouterProvider在您的应用配置中处理此类请求:

$urlRouterProvider.when('/auth/:provider', function() {
  window.location.reload();
});

第二种解决方案: 将target="_self"添加到您的链接中,如下所示:

<a target="_self" ng-href="{{'/auth/'+provider}}">{{provider}}</a>

重复:angular.js link behaviour - disable deep linking for specific URLs