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:
codice:
<?
$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
}
?>
in pratica l'idea è che se dal javascript faccio una richiesta POST a questo script php, lui si collega e mi stampa l'xml
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...:
codice:
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;
}
}
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 leggere
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