Laden von externer XML
Sonja
- javascript
Hallo,
jetzt habe ich den ganzen Tag so schön an meinem Javascript gebastelt 1 2 ect. . Bis ich gerade bemerkt habe, das ich von einer extern URL meine benötige XML garnicht per JS laden kann.
Verwendeter Code
window.onload = function()
{
ReadRSS('http://meinedomain.de/test.xml','rssBodyTemplate','rssTitleTemplate');
}
Lokal funktioniert es natürlich weil ich sie auch Lokal zwischengespeichert hatte. Die üblichen Tricks zb. über eine PHP Datei die Datei Lokal verfügbar zu machen scheitert am Webspace (kein ASP, kein PHP).
Jetzt habe ich gelesen das es mit Ajax klappen soll? Muss ich dann mein schönes JS wegschmeißen und Ajax lernen? Oder gibt es eine Funktion die gleich Arbeitet wie mein ReadRSS?
Danke
Sonja
Hi,
Bis ich gerade bemerkt habe, das ich von einer extern URL meine benötige XML garnicht per JS laden kann.
Die altbekannte Same Origin Policy.
Jetzt habe ich gelesen das es mit Ajax klappen soll?
Vermutlich wird das verwendete ReadRSS schon AJAX sein.
Muss ich dann mein schönes JS wegschmeißen und Ajax lernen?
AJAX ist JavaScript - unter Nutzung eines speziellen Objektes namens XMLHttpRequest.
MfG ChrisB
Hallo ChrisB,
vielen Dank für die Aufklärung. Ein XMLHttpRequest ist in der Funktion nicht vorhanden:
function ReadRSS(rssFeed, Body, Title)
{
rssTitle = document.getElementById(Title);
rssBody = document.getElementById(Body);
try
{
if (document.all)
{
var errorHappendHere = "Check Browser and security settings";
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
}
else
{
var errorHappendHere = "Apparently one cant read remote xml via firefox, please copy the file to your server";
xmlDoc = document.implementation.createDocument("","",null);
}
xmlDoc.async=false;
xmlDoc.load(rssFeed);
datensatz=xmlDoc.getElementsByTagName('datensatz');
SetRSSTemplates();
}
catch(e)
{
rssTitle.innerHTML = 'Error occured';
rssBody.innerHTML = 'Thrown Error:'+e.message+"<br/>Note: "+errorHappendHere;
}
}
Ich habe jetzt keine perfekte Dokumentaion zur genannten Funktion bekommen. Der Wikipedia Eintrag http://de.wikipedia.org/wiki/XMLHttpRequest ist aber schon recht hilfreich.
Wie kann ich aber die Get (glaube ich die richtige Methode) mit dem bisherigen Quelltext verknüpfen?
Danke Sonja
hi,
vielen Dank für die Aufklärung. Ein XMLHttpRequest ist in der Funktion nicht vorhanden:
Du zeigts uns hier haarklein, wie Dein JavaScript ein XMLHttpRequest-Objekt erstellt. Vermutlich soll damit auch ein XMLHttpRequest gemacht werden, sonst wäre der Code ja für die Katz ;-)
Hotti
Hi,
Ein XMLHttpRequest ist in der Funktion nicht vorhanden:
Du zeigts uns hier haarklein, wie Dein JavaScript ein XMLHttpRequest-Objekt erstellt.
Nein.
Es wird ein proprietäres Microsoft.XMLDOM-Objekt per Active-X erstellt.
(XMLHttpRequest in älteren IEs nutzt aber Microsoft.XMLHTTP)
MfG ChrisB
Ah das heißt jetzt es funktioniert im IE nicht aber unter FF ?