我有一个登录页面,当凭据正确时,我想要的是将我重定向到localhost:2000/home
。
但是,当我在登录时尝试将自己重定向到/home
时,它会重定向到:localhost:2000/#/home
注意:我已尝试将locationProvider.html5Mode
设置为true
。
这是我到目前为止所做的事情:
这是我控制器的代码:
$scope.submitLoginForm = function(isValid) {
$scope.submitted = true;
if (isValid) {
//placeholder
$scope.err = '';
alert('Your form has been processed!');
var data = {
'email': $scope.email,
'password': $scope.password
}
loginService.loginCredentials(data);
这是我的登录服务代码:
function loginCredentials(data, callback) {
$http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
$http.post("http://" + constants.local_api_host + ':'+ constants.local_api_port + '/' + constants.user_prefix + '/login', $.param(data))
.then(function(response){
if (response.data.error){
console.log(response.data.message);
var return_info = {
error: response.data.error,
message: response.data.message
}
return return_info
}
console.log("Success");
$location.path('home');
})
这是我的角度路线:
app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider){
$routeProvider
.when('/', {
templateUrl: 'index.html',
controller: mainController
})
.when('/home', {
templateUrl: 'home.html',
controller: mainController
});
$locationProvider.html5Mode(true);
});
]);
我还将index.html
和home.html
配置为base href='/'
。
而它仍然无法正常工作。
至于我在快递中的代码,这里是我为路线配置的代码:
app.get('/', function (req, res) {
res.sendFile( __dirname + '/'+ 'index.html');
});
app.get('/home', function (req, res) {
res.sendFile( __dirname + '/partials/'+ 'home.html');
});
我该怎么做才能解决这个问题?谢谢。 :)
答案 0 :(得分:0)
您可以将html5mode设置为true以删除'#'。
angular.module('myApp', []).
config(['$locationProvider', function($routeProvider, $locationProvider){
$locationProvider.html5Mode(true);
}]);
您需要添加
$locationProvider.html5Mode(true);
并且还使用$ state.go()而不是$ location.path();
$state.go('home');