Newsgroup: it.comp.lang.javascript
Titolo: Aiuto con AJAX

Salve a tutti, ho un problema con lo script che sotto ho copiato.
Il mio scopo principale è di inviare un POST ad un URL.
Riferendomi alle ultime righe del codice:
1) se lascio così come è lo script ricevo errore con IE sulla riga 30.
2) se sostituisco la var url e poststr con quelle messe come commento
lo script funziona senza problemi
Da cosa dipende? Scusate ma è una delle mie prime esperienza in
javascript e sono molto confuso.
Grazie a chiunque abbia la pazienza di rispondermi.
Gotenks
<script type="text/javascript" language="javascript">
   var http_request = false;
   function makePOSTRequest(url, parameters) {
      http_request = false;
      if (window.XMLHttpRequest) {
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) {
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance...\nPlease contact the
admin.');
         return false;
      }
      http_request.onreadystatechange = alertContents;
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-
form-urlencoded");
      http_request.setRequestHeader("Content-length",
parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
   }
   function alertContents() {
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {
            result = http_request.responseText;
            alert(result);
         } else {
            alert('There was a problem with the request...\nPlease
contact the admin.');
         }
      }
   }
 function doPost() {
	var mail = escape("
go...@email.it
");
	var rate = escape("5");
	var comment = escape("testing");
	var url = encodeURI("
http://hyiptracer.com/rate.php
");
	var poststr = "id=1856";
//	var url = encodeURI("secondo.php");
//	var poststr = "nome=nome&rand=1213321&id=1856&a=add&mail="+mail
+"&rate="+rate+"&comment="+comment;
    makePOSTRequest(url, poststr);
   }
</script>

 //      var url = encodeURI("secondo.php");
Guarda, mi sto avvicinando da poco (2gg circa) ad ajax, e da quello
che ho capito relativamente all'oggetto XMLHttpRequest, dentro open
puoi mettere solo chiamate allo stesso sito dove si trova la pagina.
Quindi se il tuo javascript è
http://www.miosito.it/ajax.html
nel secondo caso ti funziona perchè prenderebbe
http://www.miosito.it/secondo.php
prendendo 
http://hyiptracer.com/rate.php
 esci dal sito di provenienza
e non funziona più.
Dal W3C su XMLHttpRequest.open()
http://www.w3.org/TR/XMLHttpRequest/#xmlhttprequest
:
"Note: A future version or extension of this specification will most
likely define a way of doing cross-site requests."
Anche io ho lo stesso problema e sto cercando soluzioni alternative,
ma finora non ne trovo.
Ciao,
Matteo

 ma finora non ne trovo.
va per forza fatto server-side...anche, volendo, chiamando una pagina
server-side che si occupa di chiamare la pagina nell'altro dominio e
restituire il risultato.
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.


che alla fine è quello che ho fatto, usando il modulo apache
mod_rewrite
RewriteEngine On
RewriteRule ^/ext/(.*) $1 [P]
scrivendo 
http://miodomio.it/ext/http://altrodominio.it/index.html
, il
browser andrà a puntare a altrodominio. Se poi in quest'ultimo vengono
utilizzati tutti riferimenti relativi posso tranquillamente navigare
mantenendo tutto. Purtroppo alcuni usano riferimenti assoluti, e lì ti
perdi gli oggetti. Ma tanto a me interessa prendere solamente la
singola pagina (che poi, nel mio caso, sarà spesso un semplice file di
testo).
okkio, è pericoloso,  perchè se qualcuno scopre questo artificio sul
tuo server ti può utilizzare per navigare ovunque, in modo anonimo,
facendosi presentare con il tuo ip. Quindi se il server lo gestisci tu
(ho hai accesso al .htaccess), è meglio mettere restrizioni.
RewriteRule ^/ext/(.*) 
http://altrodominio.it/sezione/$1
 [P]
così dalle mie pagine posso accedere solamente alla dir 'sezione' di
'
altrodominio.it
'
Matteo

Grazie mille ragazzi, il problema è come dite voi che funziona solo su
server-side. :)