XMLHttpRequest nie może załadować adresu URL. Pochodzenie nie jest dozwolone przez Access-Control-Allow-Origin

Chcę stworzyć małą stronę internetową, która używa danych XML z innej domeny. (Dane pogodowe z Weather Underground: www.wunderground.com). Używam tylko html i javascript i piszę to wszystko w Visual Studio Express 2012 dla sieci Web.

Wykonuję i wysyłam żądanie xml w następujący sposób:

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;

Problem polega na tym, że w konsoli programisty Google Chrome (wersja 29.0.1547.66) pojawia się następujący błąd:

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. 

Lub w konsoli Internet Explorer (wersja 10.0.8):

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

Jak rozumiem, CORS (http://enable-cors.org/) wymaga wysiłku zarówno klienta, jak i serwera. Chcę założyć, że interfejs API Weather Underground wie, co robi i odpowiednio aktywował rzeczy, takie jak ustawienie nagłówka odpowiedzi na „Access-Control-Allow-Origin: *” i wiem, że mam te same problemy, gdy Próbuję tego samego kodu przy użyciu innego dostawcy interfejsu API (World Weather Online). Myślę więc, że to jest coś, co powinienem być w stanie naprawić w swoim kodzie klienta. Kolejna odpowiedź SO, w której sugeruje się naprawienie nagłówka po stronie serwera:CORS z XMLHttpRequest

Próbowałem znaleźć odpowiedzi, ale nie rozumiem artykułów takich jak:http://dev.opera.com/articles/view/dom-access-control-using-cross-origin-resource-sharing/ http://saltybeagle.com/2009/09/cross-origin-resource-sharing-demo/

questionAnswers(1)

yourAnswerToTheQuestion