Zadejte hledaný výraz...

Prosím o radu – Zpracování JSON response v jQuery a status v hlavičce

David Musil
verified
rating uzivatele
(69 hodnocení)
15. 2. 2018 16:18:56
Ahoj,
můžete mi poradit, jak se správně technicky řeší následující problém?
Formulář je třeba zvalidovat. Proto je pomocí jQuery odeslán POST požadavek do API - zde běží phpko. Vrátí se JSON odpověď, včetně hlavičky do které si dám všechno co potřebuji. Vracím si také číselný kód. Pro chybějící vyplněné pole je to třeba 422.
Když ale přidám na straně API set_status_header($code) (třeba ten 422), tak mi to už jQuery na webu nevezme a konzole vypíše: 422 (Unprocessable Entity) a skončí to errorem javascriptu.
Takže buď nemohu set_status_header() vůbec použít a nebo do něj musím cpát status 200, ale to mi nedává logicky smysl, protože v těle JSON odpovědi je správně ten status 422, protože něco není vyplněné. Obě ty možnosti fungují, ale podle mě by to mělo být nějak možné udělat.
A nebo dělám spíše nesmysl a nedělá se to takhle.
Poradíte prosím?
15. 2. 2018 16:18:56
https://webtrh.cz/diskuse/prosim-o-radu-zpracovani-json-response-v-jquery-a-status-v-hlavicce#reply1330034
Registrace
verified
rating uzivatele
(1 hodnocení)
15. 2. 2018 16:46:54
Předpokládám, že když na serveru nastavíš 422, tak ti API zpět nevrátí JSON, ale prostě vyhodí chybu 422. Pokud to chceš řešit na úrovni serveru, serverovou chybou, tak si musíš v daným postu nastavit nějakej chybovej callback.
Veškerý ty success callbacky jQuery funkcí typu post a ajax, jsou předpokládám navázaný na odpověď 200.
Nicméně doporučuju základní validaci (požadovaný položky, formát,... ) udělat ještě na úrovni JS a do API posílat až v případě, že to JS validací projde.
15. 2. 2018 16:46:54
https://webtrh.cz/diskuse/prosim-o-radu-zpracovani-json-response-v-jquery-a-status-v-hlavicce#reply1330033
David Musil
verified
rating uzivatele
(69 hodnocení)
15. 2. 2018 17:02:22
API vrati vzdycky JSON odpoved, ale chtel jsem k tomu nastavit i status do hlavicky. Prave aby byla vzdycky odpoved zajistena v tomhle formatu a neprisla zpatky nejaka blbost. Bohuzel ten status v hlavicce javascript v prohlizeci nezere. Ten chce jen 200.
Nechtel jsem to delat slozitejsi, to API neni samostatne bezici nekde na serveru. Je to PHP framework CodeIgniter a ta validace je metodou POST a validuje to cely PHPko. Tam jsou tyhle veci jako validacni pravidla strasne sikovne udelany.
15. 2. 2018 17:02:22
https://webtrh.cz/diskuse/prosim-o-radu-zpracovani-json-response-v-jquery-a-status-v-hlavicce#reply1330032
Registrace
verified
rating uzivatele
(1 hodnocení)
15. 2. 2018 17:12:02
jQuery ajax funkce má fail callback, to by to mělo zpracovat ne?
15. 2. 2018 17:12:02
https://webtrh.cz/diskuse/prosim-o-radu-zpracovani-json-response-v-jquery-a-status-v-hlavicce#reply1330031
tomve
verified
rating uzivatele
(22 hodnocení)
15. 2. 2018 17:12:10
Máš ti podobně? - https://stackoverflow.com/a/12735207
15. 2. 2018 17:12:10
https://webtrh.cz/diskuse/prosim-o-radu-zpracovani-json-response-v-jquery-a-status-v-hlavicce#reply1330030
David Musil
verified
rating uzivatele
(69 hodnocení)
15. 2. 2018 17:42:37
Mám to takhle:
15. 2. 2018 17:42:37
https://webtrh.cz/diskuse/prosim-o-radu-zpracovani-json-response-v-jquery-a-status-v-hlavicce#reply1330029
tomve
verified
rating uzivatele
(22 hodnocení)
15. 2. 2018 18:12:43
problém je, že akceptuješ fakt, že ajax bere success s kodem 422 v hlavičce
což ajax bere jako error
odchytavej errory skrz error funkci / definici v ajaxu
https://api.jquery.com/ajaxError/
tvůj pohled je ok, ale ajax to vidí jako error, takže do success nevleze, což je u tebe vše s $response
15. 2. 2018 18:12:43
https://webtrh.cz/diskuse/prosim-o-radu-zpracovani-json-response-v-jquery-a-status-v-hlavicce#reply1330028
David Musil
verified
rating uzivatele
(69 hodnocení)
15. 2. 2018 18:46:06
Diky, upravim si to.
15. 2. 2018 18:46:06
https://webtrh.cz/diskuse/prosim-o-radu-zpracovani-json-response-v-jquery-a-status-v-hlavicce#reply1330027
Pro odpověď se přihlašte.
Přihlásit