2012-03-03 3 views
0

ログインページに行く前にJavaScriptとCookieが有効になっているかどうかを検出するインデックスページがあります。ログインページは、両方が有効な場合にのみログインフォームを表示します。スクリプトがリダイレクトを無効にしました

最初にインデックスページにCookieを設定しました。ログインページでCookieが読み取られると、Cookieが有効になります。 JavaScriptが無効になっていると、ログインページにリダイレクトされ、エラーが発生したことを知らせるクエリー文字列が表示されます。

ここで私の問題は、スクリプトが有効になっている場合でも、スクリプトのリダイレクトが継続していることです。ここで変更する必要があるのは何ですか?

<html> 
<head> 

<% 
    response.cookies("enabled")="1" 
%> 

<noscript> 
    <%response.redirect("http://www.test.com/test/login.asp?noscript=true&settingsCheck=1")%> 
</noscript> 
<% 
    response.redirect("http://www.test.com/test/login.asp?&settingsCheck=1") 
%> 
</head> 
<body> 

</body> 
</html> 

答えて

1

NOSCRIPTはクライアントタグです。 <% ... %>はサーバー側を実行します。したがって、NOSCRIPTタグ内のコードは、周囲のマークアップに関係なく、サーバー上で評価されます。

リフレッシュタグMETAを使用して、クライアントでリダイレクトを実行できます。これはスクリプトを必要としないので、NOSCRIPTタグ内に置くことができます。これはvalid HTML 5 markupです。

<noscript> 
    <meta http-equiv="refresh" content="0; url=http://www.foo.com?script=false"> 
</noscript> 
<script> 
    window.location.href = "http://www.foo.com?script=true"; 
</script> 
+0

ありがとうございました!それは理にかなっている。私はそれを入れて、今私が持っている問題は、スクリプトが有効になっていなくてもメタタグのリダイレクトが起こっていないということです。 2番目のaspリダイレクトはまだ送信されています。私は何を変える必要があるかわからない。 – Cineno28

+0

@ Cineno28 - 私の事例を更新しました。クライアント側のリダイレクトを使用できます。そうすれば、スクリプトが有効になっていない場合、メタタグはリダイレクトされますが、** **が有効な場合、スクリプトはリダイレクトを処理します。 –

+0

ありがとうございました。私も編集に本当に感謝しています。助けてくれてありがとう! – Cineno28

関連する問題