我在这里的第一篇文章,但我试图创建一个允许用户登录到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附加到最后,导致时间表服务抛出错误。 如果我对此完全错误的方式,希望有人可以帮助我,或者给我一个正确方向的推动:)
答案 0 :(得分:0)
那是因为你只是替换了://
部分,所以最后混合了原始的href和字符串连接。
您可以创建一个新的href字符串,而不是替换:
location = location.protocol + '//' + encodeURIComponent(login) + ':' + encodeURIComponent(pass) + '@apps.example.com/TimeTables';
location.protocol
会返回http:
或https:
之类的字符串,并连接//
和登录部分。