2017-11-20 24 views
0

私の最初の投稿ですが、ユーザーがHTTP基本認証サイト(私の大学時間表)にログインできるようにするためのフォームを作成しようとしています。これは、iOSのログインを覚えていないことです。ここ は私が持っているもので、これまで私がこれまで抱えている問題があるHTTP認証大学の時刻表

<script> 
function submitAuthForm() { 
    var login = document.getElementById('login').value; 
    var pass = document.getElementById('pass').value; 
    location = location.href.replace('://', '://' + encodeURIComponent(login) + ':' + encodeURIComponent(pass) + '@apps.example.com/TimeTables'); 
    setTimeout(function(){ 
     location.reload(true); 
    }, 5000); 
} 
</script> 
<form method="get" onsubmit="submitAuthForm(); return false"> 
    <input type="text" id="login" /> 
    <input type="password" id="pass" /> 
    <input type="submit" value="OK" /> 
</form> 

そのフォームもそのに時刻表サービスを引き起こして最後まで上にホストされているサイトの現在のURLを取り付けるその提出されたときエラーを投げる。 私はこれについて完全に間違った方法を行っている場合は、誰かが私を助けたり、正しい方向に私を助けてくれることを願ってください:)

+0

なぜ文字列の置換を行っていますか? 'location.href = 'https://' + encodeURIComponent(...'? – Ryan

+0

私は正直言って私がここで見つけたものを使ってみようとしていたわけではありません:https://stackoverflow.com/questions/3079031/login-form-for-http-basic-auth – Joe

答えて

0

これは、://部分のみを置き換えるためです。オリジナルのhrefと文字列の連結。代わりに置き換えるの

は、新しいhrefの文字列を作成することができます。

location = location.protocol + '//' + encodeURIComponent(login) + ':' + encodeURIComponent(pass) + '@apps.example.com/TimeTables'; 

location.protocolhttp:またはhttps:のような文字列を返し、あなたは//、ログイン部品を連結します。

+0

ああ、この部分を変更しましたが、私は今、URLの前に表示するユーザ名とパスワードを取得するのに苦労しています。私はこのような「https:// user:[email protected]/TimeTables」を取得しようとしていますが、「apps.uclan.ac.uk/DailyTimetable/」は404につながっています。なぜこれが今ではうまくいかないのか分からない何か? – Joe