XMLHttpRequest kann URL nicht laden. Origin wird von Access-Control-Allow-Origin nicht zugelassen

Ich möchte eine kleine Website erstellen, die XML-Daten aus einer anderen Domain verwendet. (Wetterdaten von Weather Underground: www.wunderground.com). Ich verwende nur HTML und Javascript und schreibe alles in Visual Studio Express 2012 für Web.

Ich mache und sende die XML-Anfrage wie folgt:

url = "http://api.wunderground.com/api/3c6e3d838e217361/geolookup/conditions/forecast/q/51.11999893,-114.01999664.xml";

xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", url, false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;

Das Problem ist, dass in der Entwicklerkonsole von Google Chrome (Version 29.0.1547.66) der folgende Fehler angezeigt wird:

XMLHttpRequest cannot load http://api.wunderground.com/api/3c6e3d838e217361/geolookup/conditions/forecast/q/51.11999893,-114.01999664.xml. Origin http://localhost:49933 is not allowed by Access-Control-Allow-Origin. 

Oder dies auf der Internet Explorer (Version 10.0.8) Konsole:

SEC7118: XMLHttpRequest for http://api.wunderground.com/api/3c6e3d838e217361/geolookup/conditions/forecast/q/51.11999893,-114.01999664.xml required Cross Origin Resource Sharing (CORS). 

Wie ich es verstehe, CORS (http://enable-cors.org/) muss sowohl vom Client als auch vom Server ausgeführt werden, um zu funktionieren. Ich möchte davon ausgehen, dass die Weather Underground-API weiß, was sie tut, und die entsprechenden Funktionen aktiviert hat, z Ich versuche den gleichen Code mit einem anderen API-Anbieter (World Weather Online). Ich denke, das sollte ich in meinem Client-Code korrigieren können. Eine weitere SO-Antwort, bei der vorgeschlagen wird, den serverseitigen Header zu reparieren:CORS mit XMLHttpRequest

Ich habe versucht, Antworten zu finden, verstehe aber Artikel wie:http://dev.opera.com/articles/view/dom-access-control-using-cross-origin-resource-sharing/ http://saltybeagle.com/2009/09/cross-origin-resource-sharing-demo/

Antworten auf die Frage(1)

Ihre Antwort auf die Frage