ログインする必要があるangularJSアプリケーションがあります。アプリケーションで自分の状態を定義しました。ログインしてブラウザに状態を直接開くと、404にリダイレクトされます。anglejsアプリケーションでは、ユーザーがログインしていなくてもhtmlページが表示されます
ログインすることなくブラウザで.htmlページを明示的に開くと、HTML要素と非HTML要素が表示されます。レンダリングされたangularJS式。デベロッパーツールの[ネットワーク]タブでは、ステータスコードは200です。代わりに404を取得し、404またはログインページにリダイレクトするにはどうすればよいですか?
私のアプリケーションはApache Tomcatでホストされています。
何か助けていただければ幸いです。
更新:
次の例である:(私もコードを提供することができません)。
私は、フォルダ内のビューとしてClientView.htmlを持つフォルダクライアントを持っているとしましょう。以下は私のapp.jsのルートです。
.config(function ($stateProvider, $httpProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('app.client', {
// child state of `app`
url: '/client',
views: {
'[email protected]': {
templateUrl: 'client/ClientView.html',
controller: 'ClientCtrl'
},
data: {
requireLogin: true
}
}
})
});
私がログインせずにhttp://localhost/app/clientとしてアプリケーションにアクセスした場合、これは404
に私を取るんが、私はhttp://localhost/app/client/ClientView.htmlにアクセスしようとするならば、それは私にそのページ内のHTML要素を示しただけでなく、非レンダリングAngularJs表現。ログインページや404にリダイレクトするにはどうすればよいですか?ログインページにリダイレクトされていない場合
$rootScope.$on('$stateChangeStart', function(event, toState , toParams, fromState, fromParams)
{
if(toState.data.requireLogin=== true && !$rootScope.isAppLog) {
event.preventDefault();
$state.go('login');
}
});
これかどうかをユーザーLOGGEDINをチェックしたりせず、:。
コードを入力してください。私たちが助けることができるように。 – SaiUnique
それぞれのコントローラに条件を設定し、404ビューに無効なリダイレクトがある場合はセッションをチェックします。これは私がこの問題にアプローチした方がよいでしょう –
@Sai質問を更新しました。私はコードを提供することはできません。 – pix1289