私はMVCアプリケーションのログイン認証に取り組んでいます。私はこの問題で長い間努力しています。ログインが成功した後、私はホームページにリダイレクトしたいが、私のコード$ location.path( '/ home')は何もしない。そして、私はそれがapp.jsの私のrouteproviderで与えられている私のデフォルトのパスに常に行くことがわかった。
誰が
app.js
var app = angular.module('myApp', [
"toastr",
"ui.bootstrap",
"ngRoute",
"datatables",
"ngMaterial",
"ngMessages",
"material.svgAssetsCache"
]);
app.config(["$routeProvider", "$locationProvider",
function ($routeProvider, $locationProvider) {
console.log('$routeProvider' + JSON.stringify($routeProvider));
console.log('$locationProvider' + $locationProvider);
//return
$routeProvider.when("/login",
{
redirectTo: "/login"
}).when("/Home",
{
redirectTo: "~/Home/Index/"
//controller: "MyCtrl"
}).when("/user",
{
redirectTo: "/User/"
}).when("/adduser",
{
redirectTo: "/User/User"
}).when("/role",
{
redirectTo: "/Role/"
}).when("/addrole",
{
redirectTo: "/Role/AddRole"
}).when("/settings",
{
redirectTo: "/Settings/"
}).when("/Editsettings",
{
redirectTo: "/Settings/Edit/"
}).when("/uploadData",
{
redirectTo: "/UploadDataFile/"
}).otherwise(
{
redirectTo: '/Test/Index'
});
$locationProvider.html5Mode({
enabled: true,
requireBase: false
}).hashPrefix('!'); //Remove the '#' from URL.
}])
Login.js
app.controller('LoginCtrl', function ($scope, $location, $http, $window) {
$scope.ddlDomain = [ 'AS', 'EU', 'LA'];
$scope.Domain = $scope.ddlDomain[0].value;
// send to your controller
$scope.LoginClick = function() {
var User = {
UserId: $scope.UserId,
Password: $scope.Password,
Domain: $scope.Domain
}
$http({
method: "post",
url: "/Login/SSOLogin",
data: { 'user': User }
}).then(function (response) {
if ((response.data.Message == "") || (response.data.Message == null)) {
$location.path('/Home');
if (!$scope.$$phase) {
//$digest or $apply
$scope.$apply();
}
} else {
$scope.errormsg = response.data.Message;
}
// handle success here
}, function (response) {
console.log("err" + response.data);
// handle error here
});
}
});
本当に問題はありませんか?エラーハンドラはノーオペレーションです。さらに、 '$ location.path( '/ Home')'を打つために応答条件が満たされていることを確かめますか? – Phix
@Phix:ええ、応答条件が満たされています。私のrouteconfigでは、それは常に "それ以外の"条件に当たっています。 –
なぜ多くの 'redirectTo'ですか? – Phix