| 

.NET C# Java Javascript Exception

2
Hi,

habe eine kleines Javascript geschrieben, das mittels XMLHttpRequest eine xhmtl Seite holt und daraus einige Divs in die eigentliche Seite einhängt.

Unter Firefox, Chrome, Safari und Opera funktioniert alles einwandfrei. Nur im Internet Explorer bekomme ich kein responseXML sondern nur den responseText.

Die zu ladende Seite ist mit dem w3c validator durchgecheckt (http://validator.w3.org/) und einwandfreies xhtml 1.0 Strict.

Lade ich nun die Seite mit .loadXML(xmlhttp.responseText); in das eigentliche (xml-)Objekt, funktioniert anscheinend das .getElementsByTagName("div"); nicht mehr.

// ...
var xmlDoc = xmlhttp.responseXML;
if(xmlDoc.xml == "")
{
xmlDoc.loadXML(xmlhttp.responseText);
var divs = xmlDoc.getElementsByTagName("div");
//...
}
//...


Die ganze restliche Logik ist so aufgebaut, dass im Firefox/Safari/... alles funktioniert.
Wie kann ich das beibehalten?

P.S.:
Webserver XAMPP
Browser IE 8 mit MS "IE Developer Toolbar" und IEPro
News:
15.09.2009
niemand 41 3
Poste dochmal dein xhtml. Nur Weil w3c sagt es ist valide, heißt das ja noch lange nicht, daß jeder Parser damit zurechtkommt.
MiW 16.09.2009
2 Antworten
0
Warum getElementsByTagName nicht funktioniert kann ich dir so nicht sagen. Vielleicht solltest Du prüfen ob xmlDoc.parseError.errorCode einen Fehler enthält und damit mit dem XML nicht klarkommt.

Um eine Ebene darüber anzusetzen würde ich mir ansehen wie man trotzdem an das responseXML im IE kommt, anstatt Deinen Workaround zu benutzen. Ich zitiere aus der MSDN:

If the response was generated by an Active Server Pages (ASP) page and the Multipurpose Internet Mail Extension (MIME) type was not correctly set to one of the supported MIME types using the ASP method Response.ContentType then responseXML will be empty.

The supported MIME types for MSXML 6.0 are: "text/xml", "application/xml" or anything that ends with "+xml", for example "application/rss+xml".

Mit anderen Worten: Wenn Du das XML Serverseitig generierst, dann ist es wichtig, dass im HTTP-Header der korrekte MIME Typ angegeben wird, dann müsste auch xmlhttp.responseXML Text enthalten.
16.09.2009
Vash 440 2 6
0
Für eine PHP Anwendung muss also noch folgender Code hinzugefügt werden:

<?php
header("Content-Type: text/xml");
?>
17.09.2009
Forestsoft 66 1 1

Stelle deine Javascript-Frage jetzt!