Wie erhalte ich mit Ajax in Prototype.js eine XML-Datei als XML (und nicht als String)?

StackOverflow https://stackoverflow.com/questions/54626

  •  09-06-2019
  •  | 
  •  

Frage

Dieser Code stammt von Prototype.js.Ich habe mir wahrscheinlich 20 verschiedene Tutorials angesehen und kann nicht herausfinden, warum das nicht funktioniert.Die Antwort, die ich bekomme, ist null.

new Ajax.Request(/path/to / xml / file.xml, {
   method: "get",
   contentType: "application/xml",
   onSuccess: function(transport) {
      alert(transport.responseXML);
   }
});

Wenn ich das ändere responseXML Zu responseText, dann wird mir die XML-Datei als Zeichenfolge angezeigt.Dies ist keine PHP-Seite, die XML bereitstellt, sondern eine tatsächliche XML-Datei, daher weiß ich, dass es sich nicht um die Antwortheader handelt.

War es hilfreich?

Lösung

Wenn transport.responseXML ist null, aber Sie haben einen Wert für transport.responseText dann glaube ich, es ist, weil es Datei keine gültige XML ist.

Edit: Ich habe gerade bemerkt, dass hier in unserem Code, wenn wir eine XML-Datei bitten wir den Inhaltstyp auf 'text / xml' gesetzt. Ich habe keine Ahnung, ob das einen Unterschied macht oder nicht.

Andere Tipps

Ich will nur meinen Nachmittag teilen mit einem NULL-Ergebnis in der Frage arbeitet für responseXML Antworten. Meine Ergebnisse waren genau wie in der Frage beschrieben: response wurde mit der XML-Datei gefüllt war responseXML NULL. Wie ich völlig sicher war, meine Datei in gültigem XML-Format ist, muss der Fehler irgendwo anders sein.

Wie bereits erwähnt in der Prototype v1.7 Dokumentation, habe ich den Inhaltstyp auf "application / xml" . Die Antwort gesendet wurde ständig „text / html“, egal was passiert.

Um es kurz zu machen, das Problem, das ich lief in war, dass meine XML-Datei der Endung hatte „gpx“ , wie es ist ein De-facto-Standard für die GPS-Koordinaten. Die Mime-Typ Sammlung meiner lokalen XAMPP Apache-Installation sieht nur die Endungen „xml“ und „xsl“. Nach der Zugabe von „gpx“ und dem Neustart des Servers das Programm lief reibungslos, wie es sein soll ist.

In meinem Fall gibt es drei Lösungen:

1) bearbeiten, um die "mime.types" Datei von Apache. Mit Hilfe eines XAMPP, Sie finden es unter "C: \ xampp \ apache \ conf \ mime.types". Suchen Sie nach der „application / xml“ Aufzeichnung und ändern Sie wie folgt vor:

application/xml xml xsl gpx

Vergessen Sie nicht, den Server neu zu starten!

2) fügen Sie den MIME-Typ in einem .htaccess des entsprechenden Ordners. Öffnen oder eine .htaccess-Datei erstellen, und fügen Sie folgende Zeile:

AddType application/xml xml xsl gpx

3) während des Upload-Vorgangs, ändern Dateityp "xml" statt, was auch immer Sie haben

Hope i einige Zeit sicher einer von euch Jungs.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top