AJAX Request für Smartphones
Luc411
- https
Hallo alle miteinander!
Ich bin seit einigen Tagen aufgrund eines AJAX Requests am verzweifeln. Ich benutze XAMPP um dort meine index.html abzulegen, und über das Netzwerk mit meinem Smartphone zu erreichen. Jedoch führt er keinen AJAX Request aus. Es soll ein Formular auf Benutzername und Kennwort geprüft werden. Wenn ich am PC selber die APP mit iOS Simulator simuliere, funktioniert die Abfrage ohne Probleme. Mein Smartphone ist nach der Tabelle von Quirksmode kompatibel mit AJAX (Android).
Meine login.js:
function login(){
username = document.getElementById('username').value;
password = document.getElementById('password').value;
alert(username+'1');
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
ajaxRequest = new XMLHttpRequest(); //FF for now
queryString = "?username=" + username + "&password=" + password;
ajaxRequest.open('GET','http://localhost/eintragen.php'+ queryString,true);
ajaxRequest.send(null);
ajaxRequest.onreadystatechange = function()
alert(ajaxRequest.readyState+'2');
{
// alert(ajaxRequest.onreadystatechange+'Alert1');
// Create a function that will receive data sent from the server
if (ajaxRequest.readyState == 4 && ajaxRequest.status == 200)
//alert(ajaxRequest.readyState+'alert2');
{
var ajaxDisplay = document.getElementById ('ajaxDiv');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
//document.myForm.time.value = ajaxRequest.responseText;
//interval = clearInterval(interval);
result = ajaxRequest.responseText;
test1=result;
alert(test1);
if (test1=='Authentifizierung Erfolgreich!'){
location.href="index2.html";
}
}
}
}
//interval = setInterval("getResult()");
function checkResult()
// Alert the value of result and clear interval
{
// once we get a result, turn interval off.
if(result != null)
{
alert(result+'1'); // we're clearly out of the onreadystatechange scope with our result.
}
}
Die ich aufrufe mit diesem Abschnitt:
<form
<p> <center> <input type='button' id= "Login" onclick='()' value='Login' style="width:150px; height:40px;"/> </center> </p>
für jede Hilfe wäre ich dankbar,
Luc411
Zunächst einmal: übertrage nie, nie, nie, niemals Username und Passwörter über eine ungesicherte HTTP-Verbindung - und schon gar nicht auf dem Handy, bei dem die entsprechenden Datenpakete mit Leichtigkeit abgefangen werden können!
Als nächstes kann ich auf Basis des von Dir beschriebenen Codes mehrere Vermutungen anstellen, woran es liegen könnte, dass dieser nicht funktioniert:
die Antwort wird mit einem XML-artigen Content-Type geliefert, woraufhin in Android responseXML, aber nicht responseText verfügbar ist (Content-Type: text/plain oder text/html);
Der Code
ajaxRequest.onreadystatechange = function()
alert(ajaxRequest.readyState+'2');
{ ... }
...führt dazu, dass in der Funktion nur das alert steht und der nachfolgende Block direkt ausgeführt wird.
Gruß, LX
Zunächst einmal: übertrage nie, nie, nie, niemals Username und Passwörter über eine ungesicherte HTTP-Verbindung - und schon gar nicht auf dem Handy, bei dem die entsprechenden Datenpakete mit Leichtigkeit abgefangen werden können!
Als nächstes kann ich auf Basis des von Dir beschriebenen Codes mehrere Vermutungen anstellen, woran es liegen könnte, dass dieser nicht funktioniert:
die Antwort wird mit einem XML-artigen Content-Type geliefert, woraufhin in Android responseXML, aber nicht responseText verfügbar ist (Content-Type: text/plain oder text/html);
Der Code
ajaxRequest.onreadystatechange = function()
alert(ajaxRequest.readyState+'2');
{ ... }
>
> ...führt dazu, dass in der Funktion nur das alert steht und der nachfolgende Block direkt ausgeführt wird.
>
> Gruß, LX
Danke für deine Hilfe, habe es jetzt hinbekommen und versuche jetzt meine AJAX Abfrage dank deines Tipps sicherer zu machen.
Gruß, Luc411