我有一个 oAuth2 服务,我想将 redirect_uri 参数作为 url 传递到我的 AngularJS 应用程序中的某个地方 - 例如http://localhost:8080/#/twitter/list
但我的 oAuth2 提供商无法识别其中包含井号的 URL。我尝试将 url 更改为 http://localhost:8080/%23/twitter/list
但 Angular 似乎无法识别该路径,我在浏览器中收到以下错误:
Cannot GET /%23/twitter/list
如何才能使重定向回到我的 AngularJS 应用程序正常工作?
最佳答案
根本没有必要使用主题标签。在支持 HTML 5 的现代浏览器(旧版 IE 除外)中,您可以跳过该主题标签。默认情况下未启用,但您可以在您的应用中更改它。
在您的应用中带有路由配置的部分下,您需要注入(inject)额外的 $locationProvider,然后应该使用它。请看下面使用 ui-router 的示例(同样适用于 ng-router):
angular.module('app').config(function( $stateProvider,
$urlRouterProvider, $locationProvider ){
//Routes
//...
$locationProvider.html5Mode(true);
}
使用类似的设置,您无需在应用中的任何位置使用井号标签。这意味着原始问题将得到解决
关于angularjs - oAuth2 将 URI 重定向到 AngularJS 应用程序,在 URI 中使用哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24521638/