Jak je možné poslat JSON v POST body requestu? rubrika: Programování: JavaScript

3 SebastianBusek
položil/-a 16.5.2013

Ahoj,

chtěl bych se zeptat na jednoduchou věc: jak je možné poslat POST request pomocí Javascriptu s tím, že do Request payload chci strčit JSON?
Jde mi o to, že posílám request na vygenerování PDF, současně jedním dechem dodávám, že posílám několik serializovaných objektů (jde o fitry na gridu). Vím, že bych mohl na toto jednoduše použít ajax, ale a bohužel neznám rozumný způsob jak získat vygenerované PDF z ajax response...
Pokud mi můžete poradit, bylo by to moc super... :)

Díky a hezký den.

odkaz
9 Honza Břešťan
odpověděl/-a 16.5.2013

"Poslat POST" a "pouzit AJAX" jsou kolme veci, ne? Poslal bych POST AJAXem (vlastne to je spis AJAJ :)). Beztak na vytazeni odpovedi na ten POST musite nejak reagovat - jak to dostat z response, to zalezi na serveru, jak tu response posle, ale obecne to stejne vzdycky bude nejaka success funkce.

Mozna nejsem kdovijak moderni, ale pouzil bych jQuery post. Na vytazeni PDF z AJAX response jsou nejake odpovedi na SO, treba tohle pro base64 data.

Jako alternativa se da vygenerovane PDF ulozit na server do nejake cache a udelat window.open na URL, ktera prijde jako response.

Komentáře

  • SebastianBusek : Má idea je taková, že chci poslat request v podstatě identický jako klasický form s metodou post. Toho můžu docílit tím, že dynamicky vytvořím formulář a submitnu, ale problém v tomto přístupu je ten, že musím JS objekt serializovat na inputy, tak aby ASP.NET value convertor mi data správně konvertoval do kolekce objektů... Tento přístup je možný, ale zajímalo mě, jestli jde tento postup "zkrátit". Nevím jestli to tak vyznělo, ale netrvám na AJAXu, naopak uvědomuji si, že mi komplikuje život... 17.5.2013
  • Honza Břešťan : Jo to je ASP.NET postback? Tomu bych se uplne vyhnul, tam ten vytvareny formular je asi jedina moznost (kdyz nepocitam hidden inputy a volani __doPostBack(), coz je vicemene to same) 17.5.2013
  • Anonym : Jednoduše deserializuj JSON z Request.InputStreamu. 17.5.2013
  • SebastianBusek : Jde o ASP.NET MVC, takže tam to zas tak divoké není. Nakonec jsem použil ajax, tak jak to psal pan xy na stackoverflow; funguje to celkem pěkně, ale nelíbí si mi, že otevřené okno má v url "data:"... Je to jediná vada na kráse, takže to má nyní nižší prioritu... Každopádně díky za nakopnutí. 17.5.2013

Pro plný přístup na Devel.cz se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.