JavaScript xmlhttprequest frage

freekster

Cadet 3rd Year
Registriert
Mai 2010
Beiträge
35
Hallo alle zusammen.

ich bin gerade dabei mir ein kleines HTA programm zu schreibne und möchte einige daten von einer Webseite Abfragen. das wollte ich über xmlhttprequest durchführen. das kleinere problem ist jetzt das ich, um die daten zu bekommen, einen login durchführen muss. das funktioniert ja wenn man dem befehl die zugangsdaten mit gibt. problem ist das die seite wo ich das machen möchte eine https webseite ist und ich glaube deshalb nicht einloggt wenn ich die daten so eintrage. hat irgendjemand eine Idee wie ich das mittels xmlhttprequest hin bekomme? mein aufruf sieht momentan so aus

Code:
<html>
<head>
<title>
</title>
</head>
<body>
<script type="text/javascript">
var xmlHttp = null;
try {
    // Mozilla, Opera, Safari sowie Internet Explorer (ab v7)
    xmlHttp = new XMLHttpRequest();
} catch(e) {
    try {
        // MS Internet Explorer (ab v6)
        xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e) {
        try {
            // MS Internet Explorer (ab v5)
            xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e) {
            xmlHttp  = null;
        }
    }
}
if (xmlHttp) {
    xmlHttp.open('GET', 'https://MEINESEITE', false, "BENUTZERNAME" , "PASSWORT");
    xmlHttp.onreadystatechange = function () {
        if (xmlHttp.readyState == 4) {
            alert(xmlHttp.responseText);
        }
    };
    xmlHttp.send(null);
}
</script>
</body>
</html>

kann mir einer sage nwie ich den login hin bekomme?
zur frage wie die webseite aussieht kan nich nur sagen es gibt nur ein feld für benutzername und kennwort, sowie einen login button.
über nen invisible Iframe kann ich die daten leider nicht auslesen weil die seite im internet explorer nicht richtig angezeigt werden kann und mir einen javascript fehler gibt.
 
Naja dann solltest du mal schaun, wohin das Login-Formular geht, also die action. Dahin musst du mit deinem Script via POST (meistens, schau nach) gehen. Und als POST-Parameter übergibst du dann den Benutzernamen und das Passwort. Also schau in den Quelltext, welchen "name" die Input-Felder haben und dann füll dein Array entsprechend!
 
also die action geht auf die gleiche seite. aber warum muss ich schaun welchen namen die eingabe felder haben?. meines wissens nimmt doch die open method von xmlhttprequest so oder so nur benutzername und passwort. ist es da nicht egal wie die eingabe felder davon heißen? bzw. wenn nicht wo muss ich die namen denn dann im call eintragen?
 
Die Frage ist ob das en Forumlar auf der Seite ist oder ob das die Apache Auth ist um die es da geht...
 
wie unter gem script steht ist es ein loginform und kein htacess bzw webAuth
 
Oki, dann weiste nu warums net geht. Diese Art des Logins dürfte nur für HTACCESS / Webserver geschaltete Authentifizierungen funktioniert. Wenn du ein Formular auf der Page nutzen willst, musst du einen richtigen Request abschicken. Bin mir aber nicht sicher ob das bis zum Ende funktioniert, weil er die Session / Cookie dazu ja speichern müsste.
 
Naja nein, schau du willst ja ein Web-Formular absenden. Und da gibts keine vorgefertigten Methoden oder irgendwas.

Am Beispiel von gmx.at:

Code:
<form method="post" action="https://service.gmx.net/de/cgi/login" class="login" id="formLoginFreemail">
  <fieldset>
    <legend>Login</legend>
       <input type="hidden" value="1" name="AREA"/>
       <input type="hidden" value="redirect" name="EXT"/>
       <input type="hidden" value="" name="EXT2"/>
       <input type="hidden" value="__uuid__" name="uinguserid"/>
       <input type="hidden" value="c" name="dlevel"/>
       <input type="text" value="" name="id" id="inpLoginFreemailUsername" class="field username"/>
       <input type="password" value="" name="p" id="inpLoginFreemailPassword" class="field password"/>
       <input type="submit" value="Login" class="submit"/>
       <ul>
         <li class="first"><a href="http://service.gmx.net/de/cgi/g.fcgi/login/lose/password">Passwort vergessen?</a></li>
         <li class="last"><a href="nossl"><span>Ohne SSL</span></a></li>
       </ul>
  </fieldset>
</form>

die action geht auf "https://service.gmx.net/de/cgi/login" und das über POST. Also müsstest du einen POST-Request senden. Außerdem musst du ein Array zusammenstellen, was "id" und "p" enthält (in diesem Beispiel). Du brauchst also ein assoziatives Array mit array['id'] = "benutzername" und array['p'] = "passwort". Und so wie hier schaust du dir auf deiner Seite an wie die Werte sind und bastelst dir dann ein Array zusammen was du als POST-Parameter beim Request mitgibst. Ist es jetzt klarer?
 
jop super sowas hab ich gesucht dankesehr *g* daran werd ich mich dann mal weiter hangeln
 
Zurück
Oben