Salve,
ho questo problema in javascript
in pratica ho dei file xml che risiedono su un server
io devo accedere al server e leggere questi file xml
devo farlo via html con il javascript
i browser non permettono l'accesso ad un dominio diverso da quello in cui è caricata la pagina, quindi devo utilizzare qualche cosa per connettermi ad un dominio fuori dal mio, per esempio le librerie CURL, posto il codice in php:
in pratica l'idea è che se dal javascript faccio una richiesta POST a questo script php, lui si collega e mi stampa l'xmlcodice:<? $URL=$_POST['URL']; $URL = rawurldecode($URL); $URL = stripslashes($URL); // make sure curl is installed if (function_exists('curl_init')) { // initialize a new curl resource $ch = curl_init(); // set the url to fetch curl_setopt($ch, CURLOPT_URL, $URL); // don't give me the headers just the content curl_setopt($ch, CURLOPT_HEADER, 0); // return the value instead of printing the response to browser curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // use a user agent to mimic a browser curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0'); $content = curl_exec($ch); echo $content; // remember to always close the session and free all resources curl_close($ch); } else { // curl library is not installed so we better use something else } ?>
se inizialmente imposto la variabile $URL a mano all'url che voglio io, funziona tutto! mi stampa correttamente il contenuto...quindi lo script php effettivamente si collega ad un dominio esterno
il problema è far funzionare il javascript...:
l'idea quindi è che con la xmlHTTP.open mando via POST l'URL del proxy, con parametriScript passo invece l'URL del file xml che voglio leggerecodice:function prendi(URL,URLProxy){ var xmlHTTP; xmlHTTP = apriXMLHTTPRequest(); parametriScript = "URL="+encodeURIComponent(URL); xmlHTTP.open("POST",URLProxy,false); xmlHTTP.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xmlHTTP.send(parametriScript); /* A questo livello certamente ho il risultato */ if (xmlHTTP.status == 200){ var parser=new DOMParser(); domRisposta=parser.parseFromString(xmlHTTP.responseText,"application/xhtml+xml"); alert(domRisposta.getElementsByTagName('global')[0].getAttribute('list-layout')); } else { return false; } }
e vorrei ovviamente che lui prendesse il contenuto del file xml (dove x prova ho fatto una stampa)
ah non ho riportato la funzione apriXMLHTTPRequest(), che semplicemente crea una richiesta...quella funziona fidatevi,
infatti se provo a mettere come URL un file nel mio dominio, tutto questo meccanismo funziona, ma se i file è fuori dal dominio allora mi dice che non ho il permesso per attivare la xmlHTTP.open (questo errore me lo da firebug)
riuscite a darmi una mano?
Daniele


Rispondi quotando

