2017-11-20 3 views
0

Mein erster Beitrag hier, aber ich versuche, ein Formular zu erstellen, die einen Benutzer auf einer HTTP-Basisauthentifizierung Website (Meine Universitäten Zeitplan) den Grund dafür tun können, dass es sich nicht an Logins auf iOS erinnern . Hier ist das, was ich bisherHTTP-Authentifizierung Universitätszeitplan

<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> 

Das Problem, das ich bisher habe, ist, dass, wenn das Formular abgeschickt wird seine auch die aktuelle URL der Website Anbringen seines bis zum Ende gehosteten wodurch den Zeitplan Service Fehler werfen. Hoffe, jemand kann mir helfen oder mir einen Schubs in die richtige Richtung, wenn ich die komplette falsche Weise über diese gehen :)

+0

Warum machst du einen String-Ersatz? 'location.href = 'https: //' + encodeURIComponent (...'? – Ryan

+0

Ich bin nicht ganz sicher, um ehrlich zu sein, ich habe versucht, es von etwas zu verwenden, das ich hier gefunden habe: https://stackoverflow.com/questions/3079031/login-form-for-http-basic-auth – Joe

Antwort

0

Das ist, weil Sie den :// Teil nur ersetzen, so dass Sie mit einer Mischung aus enden die ursprüngliche href und die String-Verkettungen.

Statt zu ersetzen, könnten Sie eine neue href Zeichenfolge erstellen:

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

location.protocol gibt eine Zeichenfolge wie http: oder https: und Sie die // und die Login-Teile verketten.

+0

Ah danke Ich habe diesen Teil geändert, der nur den Teil anzeigt, den ich möchte, aber ich bemühe mich nun, den Benutzernamen und das Passwort vor der URL anzuzeigen, wenn es angezeigt wird Ich suche nach etwas wie 'https: // user: [email protected]/TimeTables', bekomme aber gerade 'apps.uclan.ac.uk/DailyTimetable/', was zu einem 404 führt etwas fehlt mir, warum das jetzt nicht funktioniert? – Joe