HTTP身份验证大学时间表

时间:2017-11-20 19:17:26

标签: javascript forms http-basic-authentication

我在这里的第一篇文章,但我试图创建一个允许用户登录到HTTP基本身份验证站点(我的大学时间表)的表单,这样做的原因是它无法记住iOS上的登录。 这是我到目前为止所拥有的

<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附加到最后,导致时间表服务抛出错误。 如果我对此完全错误的方式,希望有人可以帮助我,或者给我一个正确方向的推动:)

1 个答案:

答案 0 :(得分:0)

那是因为你只是替换了://部分,所以最后混合了原始的href和字符串连接。

您可以创建一个新的href字符串,而不是替换:

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

location.protocol会返回http:https:之类的字符串,并连接//和登录部分。