Som*_*ens 15 javascript angularjs
Facebook喜欢添加#_=_到我们提供的OAuth回调URL的末尾.虽然我们没有使用基于散列的导航,但它看起来很烦人,我想摆脱它.
location.hash = '';导致无限循环$watch(这也会发生$window.location.hash = '';).Angular的$location.hash('');改变方式没什么. $location.path('');让我们成为那里的一部分,导致/#/被附加到我们的网址.
我也玩过$locationProvider.html5Mode,只收到错误.(Error: [$injector:unpr] Unknown provider: $locationProviderProvider <- $locationProvider
)虽然这可能是我自己的错.
如何在没有错误的情况下删除OAuth哈希?
小智 0
我假设您正在谈论https://www.facebook.com/dialog/oauth?client_id=...&redirect_uri= ... OAuth 调用。在我的代码中,我为它们提供了一个 URI 编码的重定向 URI,其中已经包含一个哈希值,例如 myserver.com/myapp/#/login/facebook,因此它们的重定向将在我的应用程序的 AngularJS $routeProvider 中处理。奇怪的是,Facebook 在哈希后的路径上附加了一个“&”,所以我的 $routeProvider 配置看起来像
myApp.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/login/facebook', {
templateUrl: 'dialogs/login/facebook.html',
controller: 'LoginFacebookCtrl'
}).
when('/login/facebook&', { // Facebook seems to attach an & at the end
templateUrl: 'dialogs/login/facebook.html',
controller: 'LoginFacebookCtrl'
})
...
}]);
Run Code Online (Sandbox Code Playgroud)
对我有用。
| 归档时间: |
|
| 查看次数: |
1569 次 |
| 最近记录: |