• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

xml aus webservice in html Datei auswerten

Master123of

Süsser Pfaffenapfel
Registriert
12.01.11
Beiträge
668
Hallo zusammen,

ich würde gerne von diesem Webservice: https://stats.svc.halowaypoint.com/de-DE/players/dagnatz/h4/servicerecord und die ausgelesenen Daten in der html Datei anzeigen.

Das ganze habe ich mit java script umgesetzt und es funktioniert auch:

HTML:
<!DOCTYPE html>
<html lang="de">
<head>
<title>Rechner</title>
<script type="text/javascript">

function createCORSRequest(method, url) {
document.getElementById('hl').innerHTML = '1';
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://stats.svc.halowaypoint.com/de-DE/players/dagnatz/h4/servicerecord');
xhr.onreadystatechange = function () {
  if (this.status == 200 && this.readyState == 4) {
          document.getElementById('hl').innerHTML = 'tewt' + this.responseText;
  }
};
xhr.send();
}

var xhr = createCORSRequest('GET', url);
if (!xhr) {
  throw new Error('CORS not supported');
}
  </script>
</head>
<body style="font-family:Verdana" onload="createCORSRequest()">

<label id="hl" align="center" for="User"></label>

</div>
</body>

Die Datei findet ihr hier: https://dl.dropboxusercontent.com/u/2228496/HaloKD/index Beispiel.html

Die ganze Abfrage klappt so wie ich das will (könnte aus der XML Datei die gewünschten Daten exportierten).

Allerdings klappt das ganze nicht mehr sobald ich die HTML-Datei über den "Öffentlichen Link" von Dropbox (siehe oben) verwende. Dann bekomme ich diese Fehlermeldung: "XMLHttpRequest cannot load https://stats.svc.halowaypoint.com/de-DE/players/dagnatz/h4/servicerecord. Origin https://dl.dropboxusercontent.com is not allowed by Access-Control-Allow-Origin.".

Ich habe mich dann ein wenig eingelesen und das ganze noch mal mit Ajax usw. umgesetzt. Immer das selbe: Lokale Datei => okay. Auf Server => Funktioniert nicht.

Gibt es eine Möglichkeit das was ich will umzusetzen oder suche ich hier vergebens?

Vielen Dank im Voraus!

Gruß

Johannes
 

zilVerGFX

Macoun
Registriert
26.12.08
Beiträge
118
Moin,

das Problem ist, dass du keine XMLHttpRequests über Domaingrenzen hinaus durchführen kannst. Das funktioniert nur, wenn der Server des Hosters des entsprechenden XML Files CORS unterstützt.

In der Console wird übrigens noch folgendes ausgespuckt:
Code:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://dl.dropboxusercontent.com' is therefore not allowed access.
Also ist die Sache ziemlich eindeutig.

Deine createCORSRequest() - Methode ist auch ziemlich komisch. Das wird doch an keiner Stelle überprüft?
Was du damit vor hast leuchtet mir auch nicht wirklich ein:
Code:
var xhr = createCORSRequest('GET', url);
if (!xhr) {
throw new Error('CORS not supported');
}
Du hast doch nirgendwo in deiner Methode ein "return false" oder "return null".

Falls du die Möglichkeit hast dir die Daten als JSON-Objekt zu holen, dann könntest du das ganze per JSONP machen.
Gibt es von dem Webservice irgendwo eine API oder ähnliches? Das wäre ganz gut zu wissen um dir weiterhelfen zu können, ich habe nämlich nichts gefunden (oder ich bin mal wieder blind)

Ich würde dir eventuell ein Javascript Framework wie jQuery oder Mootools ans Herz legen um solche Sachen durchzuführen, das nimmt dir schon eine ganze Menge an Arbeit ab (vor allem wenn du noch nicht ganz so Fit im Umgang mit Javascript bist) :)
 
Zuletzt bearbeitet: