Newsgroup: it.comp.lang.javascript
Titolo: ajax e opera8

salve al ng
qualcuno saprebbe dirmi se opera8 permette il POST ?
il GET funziona bene, ma se provo a fare un POST si blocca sulla riga :
    if(method == 'POST') xmlhttp.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");
ho provato a cercare in internet ma sulla specifica questione non ho trovato
niente.
il codice che allego, che è una versione un po modificata di AHAH, funziona
benissimo con IE5 e successivi, firefox , mozilla , non con opera8.0 e
NS6.2, sempre per quanto riguarda il POST
ciao e grazie dell'attenzione
per richiamare la funzione
---------------------------------------------
    ahah('POST','pippo.jsp','contentContainer','','pluto=1&paperino=2');
dove container è il DIV in cui finirà il risultato di pippo.jsp
-----------------------------------------------
questo è il contenuto del file ahah.js
---------------------------------------------------------------
var xmlhttp = false;
function ahah(method, url, target, delay, parameters) {
  document.getElementById(target).innerHTML = 'waiting...';
// Istanza dell'oggetto XMLHttpRequest
// Se Mozilla, Firefox, Opera, Safari
if (window.XMLHttpRequest) {
   xmlhttp = new XMLHttpRequest();
// Se IE
} else if (window.ActiveXObject) {
   try {
      // Versione 5.5 o inferiore
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (e) {
      try {
      // Versione 5.5 o superiore
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {}
   }
}
// Se oggetto non istanziato: errore
if (!xmlhttp) {
   alert("ERRORE: AJAX non supportato da questo browser!");
   } else {
  if (xmlhttp != undefined) {
    xmlhttp.onreadystatechange = function() {ahahDone(url, target, delay);};
    xmlhttp.open(method, url, true);
    if(method == 'GET') {
       url += '?'+parameters;
       parameters = '';
       }
    if(method == 'POST') xmlhttp.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");
    xmlhttp.send(parameters);
    }
  }
}
function ahahDone(url, target, delay) {
alert(url);
  if (xmlhttp.readyState == 4) { // only if req is "loaded"
    if (xmlhttp.status == 200) { // only if "OK"
      document.getElementById(target).innerHTML = xmlhttp.responseText;
    } else {
      document.getElementById(target).innerHTML="ahah
error:\n"+xmlhttp.statusText;
    }
 }
}

 "application/x-www-form-urlencoded");
Non serve inviare questo header per inviare via post.
Non conosco questo oggetto-già-pronto che stai usando, ma io invio SOLO via
post e non ho problemi con Opera 8.
-- 
"Non sai che ci vuol scienza
 ci vuol costanza
 ad invecchiare senza maturità"
									    F.G.

 Non conosco questo oggetto-già-pronto che stai usando,
Se ti riferisci a "AHAH" (della serie, non si sa se ridere o se piangere)
non è un oggetto già pronto.
Nel caso ti sia sfuggito il post dello scartabelli di qualche tempo fa:
 
http://en.wikipedia.org/wiki/AHAH
-- 
~ Tutti quelli che credono nella psicocinesi, per favore alzino la mia mano.

 	
http://en.wikipedia.org/wiki/AHAH
ah ecco perché mi ricordava qualcosa!


 ah ecco perché mi ricordava qualcosa!
Fosforo, fosforo... :)
-- 
~ Una volta, qui, era tutto <TABLE>.

 "application/x-www-form-urlencoded");
Il problema non è il POST, è che Opera 8 non supporta il metodo
setRequestHeader.
-- 
~ Il semble que la perfection soit atteinte non quand il n'ya
plus rien à ajouter, mais quand il n'ya plus rien à retrancher"
(A. de Saint-Exupéry)


infatti se tolgo il setRequestHeader funziona, pero il send(parameters); non
passa i parametri alla pagina jsp, e quindi il responseText risulta vuoto.
comunque ho provato con opera8.54 e funziona, quindi presumo che il problema
sia nella versione 8.0(beta)
ciao