nagłówek CORS „Access-Control-Allow-Origin”

0

Czesc,
musze pobrac plik xml i wyswietlic dane w nim zawarte. Problem polega na tym, ze mam bardzo ograniczone mozliwosci. Musze uzywac tylko JS bez zadnych bajerow w stylu jquery etc. Sprawilem takie cos:

<script type="text/javascript">

function readXml(xmlFile){

var xmlDoc;

if(typeof window.DOMParser != "undefined") {
    xmlhttp=new XMLHttpRequest();
    xmlhttp.open("GET",xmlFile,false);
    if (xmlhttp.overrideMimeType){
        xmlhttp.overrideMimeType("text/xml");
    }
    xmlhttp.send();
    xmlDoc=xmlhttp.responseXML;
}
else{
    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async="false";
    xmlDoc.load(xmlFile);
}


var tagObj=xmlDoc.getElementsByTagName("item");

var typeTitle = tagObj[0].getElementsByTagName("title")[0].childNodes[0].nodeValue;
var typeDesc = tagObj[0].getElementsByTagName("description")[0].childNodes[0].nodeValue;
var typeLink = tagObj[0].getElementsByTagName("link")[0].childNodes[0].nodeValue;


document.write('<b><a href='+typeLink+'>'+typeTitle+'</a></b><br><br>');
document.write(typeDesc+'(...)');
document.write('<br><a href='+typeLink+'>Więcej...</a><br><br><b>Archiwum</b><br>');



for (i = 1; i < 6; i++) { 

var typeLink = tagObj[i].getElementsByTagName("link")[0].childNodes[0].nodeValue;

document.write('<a href='+typeLink+'>'+typeTitle+'</a><br>');

}
}

readXml("http://linkdopliku");

</script>

Oczywiscie na IE wszystko ladnie smiga ale na Firefox i Chrome dostaje taki komunikat:

Zablokowano żądanie do zasobu innego pochodzenia: zasady „Same Origin Policy” nie pozwalają wczytywać zdalnych zasobów z "http://linkdopliku". (brakujący nagłówek CORS „Access-Control-Allow-Origin”)

Googlowalem ale wszedzie sa rozwiazania bazujace na jquery, php itp. a ja nie mam mozliwosci zeby z tego skorzystac... Macie moze jakies pomysly jak inaczej mozna to rozwiazac?

1

Jeżeli chcesz to pobrać raz i mieć święty spokój, to sobie otwórz chroma tak: chrome.exe --disable-web-security

0

Wlasnie problem w tym, ze to ma smigac dla korzystajacych ze strony.

0

To niestety nie znam rozwiązania i obawiam się, że go nie ma. Serwer z którego ciągniesz dane musiałby dodać nagłówek Access-Control-Allow-Origin: *.

0

Wszystko zależy od strony, z której dane chcesz pobierać. Jeżeli nie możesz jej kontrolować, to w takim razie wypadałoby byś mógł kontrolować kod serwerowy własnej strony. Wtedy Twój serwer, zamiast przeglądarki mógłby pobrać te dane.

1 użytkowników online, w tym zalogowanych: 0, gości: 1