Content-Type application/json

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
xDexter
Člen | 13
+
0
-

Dobrý den,

chtěl bych se zeptat jakým způsobem zpracuji v prezenteru požadavek typu POST, Content-Type application/json?
S application/x-www-form-urlencoded není problém.

V jedné části aplikace zkouším použít framework Angularjs a ten odesílá defaultně data v JSONu na server. Jde to samozřejmě změnit, ale i kvůli bezpečnosti bych to rád posílal v JSONu.

Děkuji.

Filip Procházka
Moderator | 4668
+
+1
-
$json = array('status' => 'ok');
$this->sendResponse(new Nette\Application\Responses\JsonResponse($json));
Vojtěch Dobeš
Gold Partner | 1316
+
0
-

To myslím není odpověď na otázku, ne? Teda pokud dobře chápu otázku, tedy jak zpracovat požadavek (příchozí na server).

Nebudou to data v $this->context->httpRequest->getPost();?

xDexter
Člen | 13
+
0
-

vojtech.dobes napsal(a):

To myslím není odpověď na otázku, ne? Teda pokud dobře chápu otázku, tedy jak zpracovat požadavek (příchozí na server).

Nebudou to data v $this->context->httpRequest->getPost();?

Ano, tohle jsem myslel.

Jde jednoduše o to, že když pošlu požadavek na server s typem application/json, tak následně nevím jak jej v presenteru zpracovat.

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Prozkoumal bych obsah toho, co jsem psal, někde v tom by to určitě mělo být. Pokud to bude nerozparsovaný json, tak pak poslouží Nette\Utils\Json::decode().

xDexter
Člen | 13
+
0
-

Tak řešení je zde.

Jinak díky za ochotu při řešení mého problému.

A vypadá to, že Nette si s jiným typem (např. string) než je application/x-www-form-urlencoded neporadí.

newPOPE
Člen | 648
+
0
-

Tu by to este chcelo Nette\Validators\... :D

xDexter
Člen | 13
+
0
-

newPOPE napsal(a):

Tu by to este chcelo Nette\Validators\... :D

To určitě jo, validace je potřeba jak na klientovi, tak na serverové části. Ale konkrétně tuto třídu jsem neznal, takže díky za tip Nette\Utils\Validators.