[Cascavel-pm] requisiçãos AJAX (via script.pl) com muitos caracteres

Agnaldo Macedo agnaldo em starweb-software.com.br
Sexta Agosto 29 08:30:47 PDT 2008


Via GET é gerado um cabelho HTTP mais ou menos assim:

----------------------------------------------------------------------
GET /tuaPagina.pl?campo1=valor1&campo2=valor2 HTTP/1.1
	Host: www.servidor.com
----------------------------------------------------------------------

Via POST, o cabeçalho é diferente.
Seria algo como

----------------------------------------------------------------------
POST /tuaPagina.pl HTTP/1.1
	Host: www.servidor.com
Content-Length: 27
	Content-Type: application/x-www-form-urlencoded

campo1=valor1&campo2=valor2
----------------------------------------------------------------------

As linhas tracejadas fui eu que pus apenas para delimitar o conteúdo.
Note que o corpo de uma requisição POST é defirente.
Ele é composto pelos dados a serem enviados.
A opção Content-Length: 27 indica que devem ser lidos 27 bytes como sendo o 
conteúdo do corpo, no caso, campo1=valor1&campo2=valor2

Aqui na WikiPédia tem um tópico sobre isso
http://pt.wikipedia.org/wiki/HTTP




----- Original Message ----- 
From: <fernandolouis em terra.com.br>
To: "Agnaldo Macedo" <agnaldo em starweb-software.com.br>; "Cascavel Perl 
Mongers" <cascavel-pm em pm.org>
Sent: Friday, August 29, 2008 12:03 PM
Subject: Re: [Cascavel-pm]requisiçãos AJAX (via script.pl) com muitos 
caracteres


> Agnaldo, entendi que trocando o método de envio de GET para POST vou ter 
> que avisar o tipo de conteúdo (content-type). Com GET não precisava pois o 
> servidor já sabe que o método GET vem por URL, ou seja, somente texto.
>
> Então, com POST, devo enviar todas os parâmetros das minhas variáveis... e 
> não deixá-lo mais como send(null), e sim como send (tudo que o servidor 
> deverá ler no meu script.pl)
>
> Mas não entendi o por que da utilização de:
>
> request.setRequestHeader("Content-length",
> variavelQueTemOsTeusDados.length );
>
> Por que devo usá-lo?
>
> []s,
> Fernando
>
> ----- Original Message ----- 
> From: "Agnaldo Macedo" <agnaldo em starweb-software.com.br>
> To: "Cascavel Perl Mongers" <cascavel-pm em pm.org>
> Sent: Thursday, August 28, 2008 6:00 PM
> Subject: Re: [Cascavel-pm]requisiçãos AJAX (via script.pl) com muitos 
> caracteres
>
>
>
>
> Completando....
>
> Altere:
>    request.open("GET", url, true);
>    request.onreadystatechange = updatePage;
>    request.send(null);
> Para algo como:
>    request.open("POST", url, true);
>    request.setRequestHeader("Content-Type",
> "application/x-www-form-urlencoded");
>    request.setRequestHeader("Content-length",
> variavelQueTemOsTeusDados.length );
>    request.onreadystatechange = updatePage;
>    request.send(variavelQueTemOsTeusDados);
>
>
>
> 



Mais detalhes sobre a lista de discussão Cascavel-pm