/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
POST og AJAX
Fra : Rune Jensen


Dato : 07-05-09 16:51

Skal man URLEncode, når man bruger POST i AJAXkald i stedet for GET?


MVH
Rune Jensen

 
 
Stig Johansen (07-05-2009)
Kommentar
Fra : Stig Johansen


Dato : 07-05-09 17:30

Rune Jensen wrote:

> Skal man URLEncode, når man bruger POST i AJAXkald i stedet for GET?

Kort spørgsmål, og kort svar:
Ja.

--
Med venlig hilsen
Stig Johansen

Rune Jensen (07-05-2009)
Kommentar
Fra : Rune Jensen


Dato : 07-05-09 17:34

Stig Johansen skrev:
> Rune Jensen wrote:
>
>> Skal man URLEncode, når man bruger POST i AJAXkald i stedet for GET?
>
> Kort spørgsmål, og kort svar:
> Ja.

Mange tak, det vil jeg lade gå videre;)

Er der en forklaring på hvorfor? Hvordan sendes POST-indhold, sammen med
headeren?

Undskyld, hvis jeg lyder lidt forvirret, burde vide ret meget om det
allerede, men der er altså huller.


MVH
Rune Jensen

Stig Johansen (07-05-2009)
Kommentar
Fra : Stig Johansen


Dato : 07-05-09 18:05

Rune Jensen wrote:

> Er der en forklaring på hvorfor?

Ja.

> Hvordan sendes POST-indhold, sammen med
> headeren?

Headeren fortæller kun om det er en GET eller POST.

Ved POST følger der en BODY med, som er name/valuepairs
eks. 'name=value'

Det kan være bestilling af et anlæg:
Buyer=Rune
Order=B&O fjernsyn
osv..

umiddelbart burde det sendes som
Buyer=Rune&Order=B&O Fjernsyn, men da & er adskillertegn, så skal det sendes
som
Buyer=Rune&Order=B%26O%20Fjernsyn

På den måde kan modtageren 'splitte' strengene op baseret på & tegnet, og
køre videre derfra.

Så man skal ikke URLencode hele strengen, kun delelementerne.

--
Med venlig hilsen
Stig Johansen

Rune Jensen (07-05-2009)
Kommentar
Fra : Rune Jensen


Dato : 07-05-09 18:25

Stig Johansen skrev:

<SNIP>

> Så man skal ikke URLencode hele strengen, kun delelementerne.

Takker igen ;)

Det lyder endda til, jeg kan forstå det.

Så lige "bonus"spørgsmålene:

1. Forskellen på POST og GET. Vil det vel være korrekt at skrive, at GET
sendes med headeren, mens POST sendes med body?

2. Du snakkede på et tidspunkt om et program, man kunne bruge til at
kigge på in og output af requestene (tror jeg det hedder). Har du evt.
navn/URL på programmet?


MVH
Rune Jensen


Martin (08-05-2009)
Kommentar
Fra : Martin


Dato : 08-05-09 00:33

Rune Jensen wrote:
> Stig Johansen skrev:
>
> <SNIP>
>
>> Så man skal ikke URLencode hele strengen, kun delelementerne.
>
> Takker igen ;)
>
> Det lyder endda til, jeg kan forstå det.
>
> Så lige "bonus"spørgsmålene:
>
> 1. Forskellen på POST og GET. Vil det vel være korrekt at skrive, at GET
> sendes med headeren, mens POST sendes med body?

GET sendes i URL'en og POST sendes som BODY.

Problemet med GET er hvis man har en streng ala
"type=Ole&Jens" eller "type=Er dette et spørgsmål?"
Så vil den URL se fx. således ud

ajax.php?type=Ole&Jens
ajax.php?type=Er dette et spørgsmål?

og her kræver det så man urlencoder strengene, ellers så bliver dit
serverside script temmelig forvirret.

med POST ville der ikke være noget problem med at sende sådan en linje,
da den ikke udgør nogen del af URL'en.

Men det man skal passe på med AJAX (og alle andre html formular) er at
du ikke aner hvad brugeren skriver, og kan tvinge nogle personfølsomme
data retur.

Så ALTID uanset kontroller ALLE værdier serverside og se om de er
overens med de data som du ønsker.

>
> 2. Du snakkede på et tidspunkt om et program, man kunne bruge til at
> kigge på in og output af requestene (tror jeg det hedder). Har du evt.
> navn/URL på programmet?

Hvis du bruger Firefox browseren, så hent addon'et Firebug, mest geniale
addon til webudvikling imo.

>
>
> MVH
> Rune Jensen
>

Stig Johansen (08-05-2009)
Kommentar
Fra : Stig Johansen


Dato : 08-05-09 05:16

Rune Jensen wrote:

> Så lige "bonus"spørgsmålene:
>
> 1. Forskellen på POST og GET. Vil det vel være korrekt at skrive, at GET
> sendes med headeren, mens POST sendes med body?

Nej ikke rigtig.

Du skal nærmere tænke i Headers og Body.
Enhver request har deaders, og nogle tilføjer Body.
(Der findes andet end GET og POST, søg evt efter REST)

Den første header er altid selve requestet, og kan hedde
GET /ajax.asp?parm1=value1&parm2=value2
men med POST kan den også hedde
POST /ajax.asp?parm1=value1&parm2=value2

Headerne bliver afsluttet af en blank linie, og hvis der kommer noget efter
denne linie, er det det, der kaldes body.

Så en POST med data i body kunne se sådan ud:
POST /ajax.asp?parm1=value1&parm2=value2
header2
header3

parm3=value3&parm4=value4
.....

Ved dette POST eksempel sendes data med, både i URL'en samt i Body.

> 2. Du snakkede på et tidspunkt om et program, man kunne bruge til at
> kigge på in og output af requestene (tror jeg det hedder). Har du evt.
> navn/URL på programmet?

Proxytrace.
<http://www.pocketsoap.com/tcptrace/pt.aspx>

Det skal ikke 'installeres', blot pakkes ud og køres.
Når det er startet, sætter du dine browsere til at kommunikere via proxy i
stedet for Lan.

Hvis du har flere maskiner på dit Lan, kan du også konfigurere browsere på
de andre maskiner til at bruge den.

Jeg bruger det nogle gange hvis jeg vil se forskellen på på data fra f.eks.
IE/Windows og Konqueror/Linux.

--
Med venlig hilsen
Stig Johansen

Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste