Spring Security+;Angularjs登录后重定向
尝试使用本教程中的想法: 我还使用angularjs ngRoute:Spring Security+;Angularjs登录后重定向,angularjs,spring-security,Angularjs,Spring Security,尝试使用本教程中的想法: 我还使用angularjs ngRoute: var myApp = angular.module('myApp',['ngRoute']); myApp.config(['$routeProvider', function($routeProvider) { $routeProvider .when('/', { templateUrl: 'main.html', controlle
var myApp = angular.module('myApp',['ngRoute']);
myApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'main.html',
controller: 'MainController'
})
.when('/admin', {
templateUrl: 'admin.html',
controller: 'AdminController'
})
.when('/login', {
templateUrl: 'login.html',
controller: 'LoginController'
})
.otherwise({
redirectTo: '/'
});
}]);
等等
但当我试图打开管理员页面(例如/#/admin)时,它会打开登录表单(从框中),然后我希望它会将我重定向回/#/admin,但它会将我重定向到/admin.html,这是无法控制的
如何解决此问题?要解决/错误重定向问题,可以创建如下控制器
@Controller
public class ErrorController {
@RequestMapping(value="/error")
public String error() {
return "forward:/index.html";
}
}
从SpringBoot的角度来看,它应该总是落在index.html中,在这里您“将控制权交给angular”
我假设你的资源文件夹结构如下
参考资料/static/index.html
因此,在访问根目录时会呈现该索引
我的目录结构与教程中的目录结构不同,但应该可以工作
刚刚了解您的问题是什么:
因此,在您的角度配置中添加以下内容:
$locationProvider.html5Mode(true).hashPrefix('#');
在index.htm中包含基本标记
<base href="<!-- @echo BASE_URL -->" target="_blank">
对不起,也许我不明白什么,但是Spring Boot给出了这个解决方案的错误:“已经有'ErrorController'bean方法了”。当然,我没有自己编写的其他方法ErrorController,这就是为什么它意味着它是控制/error映射的盒子中的安全bean。我明白了吗?刚刚编辑了我的回答,我想你的问题在于角度配置
<base href="<!-- @echo BASE_URL -->" target="_blank">