Fehlerkonsole von Firefox: Syntaxfehler im String?

Das Problem mit dem splitten, was du angesprchen hast, habe ich gelöst, war ja nicht viel ;)

Ich habe ebenfalls betreffende Zeile auskommentiert, komme aber zum selben Ergebnis, was ich auch gut verstehe, weil ich den Sinn nicht verstehe, die zeile auszukommentieren (was ein Wort)
Ich habe mal folgendes ausgeben lassen: http_request.status
Der ist nicht 200 sondern 500, hilft euch das weiter? Ich habe den Code eigentlich nur soübernommen und angepasst, weil Ajax für mich eigentlich komplett neues Gebiet ist, und es bis jetzt immer wunderbar geklappt hat :)
edit: Also es ist ein Interner Serverfehler, was heißt das jetzt genau?
 
Zuletzt bearbeitet:
Hi,

die Zeile habe ich auskommentiert, weil der Firefox 1.5b einen Fehler ausgibt, wenn die mit dem XMLHttpRequest aufgerufene Seite kein valides XML-Dokument ist (siehe hier).

Mit folgendem Dokumenten funktioniert deine Variante bei mir.

HTML-Dokument:
Code:
<head>
<title></title>
<meta name="author" content="Deniz">
<link rel="stylesheet" type="text/css" href="http://web482.server-drome.net/index.css">
<script type="text/javascript">
  <!--
Titel = new Array("S","e","b","a","s","t","i","a","n","_","F","r","a","n","k","s","_","W","e","b","s","i","t","e","!");
Size = Titel.length;
var i=0;
var j=0;
function Title()
	{
         if (i < Size && j == 0)
         	{
	        document.title += Titel[i];
                 i++;
                 }
	if (i==Size-1)
         	{
                 j++;
                 document.title = document.title.substr(0,Size-j);
                 if (j==Size)
                 	{i=0;j=0;}
                 }
         setTimeout("Title();",200);
         }
var http_request = false;
function Request(anhang)
	{
	http_request = false;
         if (window.XMLHttpRequest) //Safari, Mozilla
         	{
            	http_request = new XMLHttpRequest();
            	if (http_request.overrideMimeType)
                 	{
	                //http_request.overrideMimeType('text/xml');
			}
        		}
         else if (window.ActiveXObject)// IE
         	{
            	try
                 	{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
			}
                 catch (e)
                 	{
	                try
                         	{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
		                }
                         catch (e) {}
			}
	        }
        if (!http_request)
        		{
		alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
		return false;
		}
        url = 'xmlhttp_request_dummy.php?do='+encodeURIComponent(anhang);
        http_request.onreadystatechange = ShowContent;
        http_request.open('GET', url, true);
        http_request.send(null);
    }
function ShowContent()
	{
        	if (http_request.readyState == 4)
         	{
            	if (http_request.status == 200)
                 	{
                         document.getElementById("MainContent").innerHTML = http_request.responseText;
			}
                 else
                 	{
	                alert('Bei dem Request ist ein Problem aufgetreten (status: '+http_request.status+')');
                         }
	        }
	}
 //-->
</script>
</head>
<body bgcolor="black">
<div id="MainContent"></div><div id="time"></div>

<script type="text/javascript">
  <!--
function Login()
	{
         obj = document.getElementById("MainContent");
         obj.style.bgcolor = "darkred";
         obj.innerHTML = "";
	obj.innerHTML += "<table>";
	obj.innerHTML += "<tr height='10%'>";
	obj.innerHTML += "<td colspan='2'>";
         obj.innerHTML += "<br /><br /><br />";
         obj.innerHTML += "</td>";
         obj.innerHTML += "<td>";
	obj.innerHTML += "Login:";
	obj.innerHTML += "<input type='text' name='Login' value='' id='Login' />";
	obj.innerHTML += "</td>";
	obj.innerHTML += "<td>";
	obj.innerHTML += "Passwort:";
	obj.innerHTML += "</td>";
	obj.innerHTML += "<td>";
	obj.innerHTML += "<input type='password' name='Passwort' value='' id='Passwort' />";
	obj.innerHTML += "</td>";
	obj.innerHTML += "</tr>";
	obj.innerHTML += "</table>";
         obj.innerHTML += "<br /><br />";
         obj.innerHTML += "<img src=\"bilder/submit.gif\" alt='Login' title='Login' onClick='sendLogin();'>";
         return 1;
         }
function setMinus(digit, text)
	{
         window.digit = digit;
         Minus();
         obj = document.getElementById("MainContent");
         obj.innerHTML = text;
	}
function Minus()
	{
         window.digit--;
         obj = document.getElementById("time");
         obj.innerHTML = "-"+digit/10;
         if (window.digit > 1)
         	{setTimeout("Minus()", 100);}
         else
         	{obj.innerHTML = "";}
         }
function sendLogin()
	{
         Login = document.getElementById("Login").value;
         Passwort = document.getElementById("Passwort").value;
         Request("1|Login="+Login+"|Pass="+Passwort);
         obj = document.getElementById("MainContent");
         if(obj.innerHTML == "blub")
         	{AccessDenied();}
         else if(obj.innerHTML == "blab")
         	{AccessGranted();}
         return 1;
         }
function AccessGranted()
	{
         obj = document.getElementById("MainContent");
         obj.innerHTML = "Access Granted";
         return 1;
         }
function AccessDenied()
	{
         obj = document.getElementById("MainContent");
         obj.innerHTML = "Access Denied!";
         Request(2);
         setTimeout("Login()",2000);
         return 1;
         }
setMinus(35, "Iniciating Login...Please Wait... |");
setTimeout("Login()",3700);
 //-->
</script>

<input type="button" onClick="alert(document.getElementById('MainContent').innerHTML);" />
</body>
</html>
PHP-Dokument xmlhttp_request_dummy.php (modifiziert, aber in der Funktion gleich):
Code:
<?php
$data = explode("|",$_GET['do']);
$arrLogin = split("=", $data[1]);
$arrPW = split("=", $data[2]);
switch($data[0]){
   case 1:
           if(($arrLogin[1]=="hans")&&($arrPW[1]=="dampf"))
               {
                   echo 'eingelogged';
                   }
           else
               {
                 echo 'Fehler';
                   }
           break;
   default:
       echo 'Klappt';
   break;
}
?>
Funktioniert so im Firefox, nicht aber im IE. Der hat Probleme, Tabellen mit innerHTML ins Dokument einzufügen.

Vielleicht kannst du damit etwas anfangen.

Ciao
Quaese
 
Zurück