我的第一个帖子在这里,但我试图创建一个表单,让用户登录到一个超文本传输协议基本认证网站(我的大学时间表),这样做的原因是它不记得登录在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附加到表单的末尾,导致时间表服务抛出错误。如果我在这件事上走错了路,希望有人能帮助我,或者给我一个正确的方向:)
发布于 2017-11-21 03:26:25
这是因为您只替换了://部分,所以最后混合了原始href和字符串连接。
您可以创建一个新的href字符串,而不是替换:
location = location.protocol + '//' + encodeURIComponent(login) + ':' + encodeURIComponent(pass) + '@apps.example.com/TimeTables';location.protocol返回一个类似于http:或https:的字符串,您可以将//和登录部分连接起来。
https://stackoverflow.com/questions/47399458
复制相似问题