Newsgroup: it.comp.lang.javascript
Titolo: form - invio dati tramite POST

Ho questo problemino... con i form con metodo POST.
Prendiamo questo esempio.
<html>
<body>
<form method="GET" action="
http://www.sito.org/cgi-bin/test.pl
">
  <input type="text" name="parametro" style="width: 100%">
  <input type="submit" value="Submit" name="SubmitButton">
</form>
</body>
</html>
Quando faccio la submit mi viene fatto chiamata a 
test.pl
 e all'URL viene
appesa una query-string fatta di coppie di valori
che vado a spacchettare con uno script serverside.
http://www.sito.org/cgi-bin/test.pl?parametro=valore&SubmitButton=Submit
Fin qui tutto OK.
Ora cambiamo il metodo di trasmissione da GET a POST.
<form method="GET" action="
http://www.sito.org/cgi-bin/test.pl
">
Viene fatta esattamente la stessa cosa: la stringa viene impacchettata in
formato "query-string", ma passata al server 
test.pl
 in standard input.
Nulla viene appeso all'URL.
Mi chiedevo se esiste un sistema per sottomettere una stringa arbitraria
(quindi non impacchettata con i sopra indicati automatismi ovvero fatta di
coppie parametro/valore) utilizzando il metodo POST.
Quello di cui avrei bisogno è inviare esattamente il contenuto del campo
text cosi com'è.
Per capirsi meglio, vorrei fare con il POST, quello che ottengo con una cosa
del tipo:
<A href="
http://www.sito.org/cgi-bin/test.pl?stringaarbitraria
">
Attiva Test
</A>
Ciao.
--Gabriele
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

Che senso ha?
Puoi mettere la parte della querystring direttamente nella action, e
lasciare gli altri valori nei campi (sempre se ti serve ciň)...altrimenti
non ne capisco proprio il senso: la differenza tra i 2 č esattamente quella
che hai scritto...stai chiedendo: ho una moto e una bicicletta, vorrei usare
la moto ma vorrei poter pedalare per non consumare benzina......
Spiega un po' il contesto

 che hai scritto...
No, forse non ci siamo capiti...
Io vorrei passare un stringa arbitraria (e quindi potenzialmente di
lunghezza superiore ai 256 caratteri previsti dal GET) tramite http POST.
Come standard il form non mi permette di mandare una stringa arbitraria, ma
'onsubmit' si prende la "briga" di impacchettarla in coppie
(parametro/valore). Cio' accade sia per il get che per il POST.
Con il get il valore viene passato come query-string; con il POST le
informazioni non vengono appese all'URL.
Se voglio mandare tramite GET un stringa arbitraria (ma per i limiti del GET
inferiore a 256 caratteri) devo semplicemente appendere tale stringa
http://www.sito.org?strigaarbitraria
.
Siccome la limitazione dei 256 caratteri, non mi va bene vorrei fare la
stessa cosa tramite http POST, che supera tale limitazione.
Spero di essermi spiegato meglio. ;-)


 (parametro/valore). Cio' accade sia per il get che per il POST.
Ok, ho capito...non mi viene in mente nulla: se non metti il name non viene
inviato, e quindi temo non ci siano soluzioni

 
In ASP esiste l'oggetto Session in cui puoi scrivere quello che vuoi e 
passartelo da pagina a pagina. Non so esista l'equivalente DOM
-- 
FastFede on WinMx
(eliminare NOSPAM dall'indirizzo)

 stringa arbitraria.
Purtroppo questo non risolve:
 la stringa passata al server non è la stringa arbitraria pulita, ma
h=stringaarbitraria
Penso cmq. che l'unica a questo punto sia intervenire lato-server, accedendo
come hai suggerito alla 'h'.
--Gabriele


Ora, siamo un po' curiosi, perche' questo gran dispiacere.
Che problema c'e', accedi alla variabile 'h' o chi per essa...

 Che problema c'e', accedi alla variabile 'h' o chi per essa...
Semplice lo script server-side è uno soltanto;.invece ho due client distinti
che
nulla ci azzeccano l'uno dall'altro, ma che utilizzano il medesimo server.
L'uno utilizza XMLhttpRequest per comunicare con il server, l'altro i form.
Volevo cercare di adattare la soluzione con i form a quello che riesco a
fare
con XMLhttprequest ovvero un qualche cosa di similare a:
var req = new XMLHttpRequest();
req.open("post",indirizzo+"&parametro1=valore1",true);
req.send(stringa_arbitraria);
Ciao,
--Gabriele