管理者ページから、ユーザーが有効な場合、ブラウザは別のページに移動する必要があります。
ユーザーが自分のユーザー名とパスワードを入力し、[OK]ボタンをクリックすると、別のページが表示され、ログインページが自動的に閉じられます。
JavaScriptでこれを行うにはどうすればよいですか?
管理者ページから、ユーザーが有効な場合、ブラウザは別のページに移動する必要があります。
ユーザーが自分のユーザー名とパスワードを入力し、[OK]ボタンをクリックすると、別のページが表示され、ログインページが自動的に閉じられます。
JavaScriptでこれを行うにはどうすればよいですか?
JavaScript を使用してブラウザを単純にリダイレクトするには:
window.location.href = "http://example.com/new_url";
リダイレクトしてフォーム (つまり、ログインの詳細) を送信するには、javascript は必要ありません。
<form action="/new_url" method="POST">
<input name="username">
<input type="password" name="password">
<button type="submit">Submit</button>
</form>
ユーザー資格情報が正しいかどうかを判断するために、クライアント側のJavaScript に完全に依存することはできません。ブラウザ (およびそれを実行するすべてのコード) は、ユーザーではなくユーザーの管理下にあるため、信頼できません。
ユーザー名とパスワードは、フォームを使用して入力する必要があります。OKボタンが送信ボタンになります。action 属性は、資格情報をチェックするプログラムによって処理される URL を指している必要があります。
このプログラムは JavaScript で記述できますが、その方法は、使用しているサーバー サイド JavaScript エンジンによって異なります。SSJS は主流のテクノロジーではないことに注意してください。どうしても使いたい場合は、専用のホスティングを使用するか、独自のサーバーを管理する必要があります。
(半年後、SSJS は Node.js のおかげでより一般的になりましたが、それでもかなり特殊化されています)。
後でリダイレクトする場合、プログラムはHTTP Location ヘッダーを発行する必要があります。
プライベート ページを出力する前に、(通常は実際のパスワードではないトークンを Cookie に保存することによって) 資格情報が問題ないことを確認する必要があることに注意してください。そうしないと、誰でも URL を知っている (したがって、ログイン システムをバイパスする) ことで非公開ページにアクセスできてしまいます。
これを試して、
window.location.href="sample.html";
次sample.html
のページです。次のページに移動します。
ユーザーが javascript で管理者であることを確認すると、javascript コードが誰にでも表示されるため、問題が発生します。サーバーは、ログインプロセス後に管理者と通常のユーザーの違いを伝え、それに応じて新しいページを生成する必要があります。
たぶん、それはあなたがあなたの質問に答えるためにしようとしていることではないでしょう:
window.location.href="<the page you are going to>";
私が得る正しい解決策は
<html>
<head>
<script type="text/javascript" language="JavaScript">
function clickedButton()
{
window.location = 'new url'
}
</script>
</head>
<form name="login_form" method="post">
..................
<input type="button" value="Login" onClick="clickedButton()"/>
</form>
</html>
ここでは、新しいURLが一重引用符で囲まれています。
MVC 開発者が JavaScript を使用してブラウザーをリダイレクトするには:
window.location.href = "@Url.Action("Action", "Controller")";