XML Datei mit PHP erzeugen und Javascript auslesen (AJAX)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • XML Datei mit PHP erzeugen und Javascript auslesen (AJAX)

    Hallo

    Ich habe ein Problem, an dem ich mir gerade die Zähne ausbeisse:
    Ich möchte clientseitig ein Adressbuch nachladen per http-request. (AJAX). Das Adressbuch soll dann stets aktuell neu erzeugt werden mit php

    Ich habe jetzt eine Datei adressbuch_xml.php die folgendermassen beginnt:
    Code:
    <?php
     header("Content-type: text/xml");
     header("Cache-Control: no-store, no-cache");
     print ('<?xml version="1.0" encoding="iso-8859-1"?>');
    
    darauf folgt dann eine XML-Ausgabe mit den Tags
    Clientseitig wird diese Seite dann mit AJAX aufgerufen und ich erhalte auch eine Rückmeldung.

    In Firefox wird http_request.respon************ML korrekt als XML-Objekt erkannt und ich kann auf die Elemente zugreifen.

    Im Internet Explorer dagegen schlägt das fehl. Ein http_request.getAllResponseHeaders() behauptet, daß die gesendete Datei den Type text/html hat und ein http_request.responseText enthält tatsächlich die XML-Datei als String. http_request.respon************ML ist jedoch ein leeres Objekt und http_request.respon************ML.xml ist ebenfalls leer.

    Was mache ich falsch - ich verwende doch einen header mit dem richtigen mime-type in php ???

    Falls das ganze ein Bug im IE ist, kann man durch eine fertige Funktion (z.B. eine die man irgendwo herunterladen kann) aus einem http_request.responseText ein XML-Objekt machen

    Danke!
    Ciao
    Anja

  • #2
    Re: XML Datei mit PHP erzeugen und Javascript auslesen (AJAX)

    Also normalerweise sollte der IE damit klarkommen - und auf als text/xml ausgelieferte Ressourcen dann auch per respon************ML Zugriff bieten.

    Mal die Header kontrolliert, mit denen der IE die Daten erhält (Netzwerksniffer o.ä.)?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Wie schon geschrieben ergibt ein http_request.getAllResponseHeaders() im IE "text/html", also kein XML!

      In Firefox gibt diese Funktion übrigens korrekt "text/xml" aus und entsprechend kann ich auch auf das XML Objekt zugreifen.

      Das Problem ist offenbar, daß der IE die XML Datei nicht als solche erkennt. Eigentlich dachte ich, daß die Zeile header("Content-type: text/xml"); das klarstellen sollte, aber vielleicht habe ich da ja einen Fehler gemacht oder der IE hat einen Bug?

      Kommentar


      • #4
        Original geschrieben von aurora-glaciali
        Wie schon geschrieben
        Ja, ich habe dich verstanden.

        Mein Vorschlag bezog sich allerdings nicht auf die Javascript-seitige Kontrollausgabe, von der du noch mal erzählst.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Ah so. ok. Ich weiss leider nicht, wie ich die Header sonst auslesen soll, wenn nicht Clientseitig. Auf der Serverseite mit PHP setze ich sie ja auf XML und beim Firefox kommen sie ja auch richtig an. Ich denke mal, daß der IE die gleichen Header bekommen sollte, oder? Meine Vermutung ist eher, daß er sie nicht oder falsch interpretiert. Vielleicht weil die Datei nicht die Endung .xml hat sondern .php und der IE von M$ ist und die machen ja gerne viel mit Dateiendungen?
          Kann ich im IE erzwingen, daß er eine Datei als XML interpretiert? Oder gibt es ein Script oder eine Funktion die einen String der eine XML-Datei enthält als XML-Objekt zurückliefert?

          Danke!

          Kommentar


          • #6
            Ich denke mal, daß der IE die gleichen Header bekommen sollte, oder?
            überzeuge dich mittels eines http sniffers, wie z.b. livehttpheaders (extension für firefox), wireshark oder web-sniffer.net.

            Kommentar

            Lädt...
            X