Diese Frage erneut posten, da der Code dieses Mal komplett anders ist.Get XML von Server mit Ajax GET
Der Versuch, Fluginformationen im XML-Format von Avinor (norwegische Luftfahrtbehörden) zu erhalten. Beispiel für eine Abfrage: http://flydata.avinor.no/XmlFeed.asp?TimeFrom=1&TimeTo=7&airport=OSL&direction=D&lastUpdate=2016-04-04T15:03:00Z
Ich habe eine Ajax-GET-Abfrage erstellt, um den XML-Feed mit id = flights in mein html p zu parsen, aber ohne Erfolg. Ich erhalte diese Fehler in Firebug-Konsole:
Syntax: erwartete Ausdruck erwartet, '<'
Firebug-> Net-> Headers zeigt Folgendes an:
Response headers
Cache-Control private
Content-Length 28088
Content-Type text/xml; Charset=iso-8859-1
Date Mon, 04 Apr 2016 18:32:07 GMT
Server Microsoft-IIS/7.0
X-Powered-By ASP.NET
Request headers
Accept */*
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Connection keep-alive
Host flydata.avinor.no
User-Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0
Wenn ich in Firebug gehen -> Net-> XML, ich kann die XML-Daten gut sehen. Kann mir bitte jemand helfen, das herauszufinden?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-beta1/jquery.min.js"></script>
<button type="button" onclick="loadFlights()">
Get Flights</button>
<p id="flights"></p>
<script>
function loadFlights() {
var url = "http://flydata.avinor.no/XmlFeed.asp?TimeFrom=1&TimeTo=7&airport=OSL&direction=D&lastUpdate=2016-04-04T15:03:00Z";
$.ajax({
url: url,
type: "GET",
dataType: "jsonp",
success: function myFunction(xml) {
var x, i, xmlDoc, txt;
xmlDoc = xml.responseXML;
txt = "";
x = xmlDoc.getElementsByTagName("flight_id");
for (i = 0; i< x.length; i++) {
txt += x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("flights").innerHTML = txt;
}
});
};
</script>
</body>
</html>
Wenn Ihr dataType jsonp ist, sollte Ihre URL auf eine JavaScript-Datei und nicht auf eine XML-Datei verweisen. BTW SOP wäre völlig nutzlos, wenn Sie es mit einer einzigen Codezeile umgehen könnten. – Musa