2017-11-20 17 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

아, 고마워. 내가 원하는 부분 만 표시하는 부분을 변경했는데, 이제는 사용자 이름과 암호를 얻으려고 애 쓰고있어. 내가 'https : // user : [email protected]/TimeTables'와 같은 것을 얻고 싶지만 'apps.uclan.ac.uk/DailyTimetable/'이 404로 연결됩니다. 거기에 있습니까? 왜 지금이 기능이 작동하지 않는지 내가 놓친 것입니까? – Joe