Signál bez hlavičky ‚X-Requested-With‘: ‚XMLHttpRequest‘ vrací HTML celého dokumentu místo snippetu
- crassus
- Backer | 78
Zdravím,
rád bych bych překreslil snippet přes CORS request bez preflight requestu.
V komponentě mám handleRedraw:
V presenteru přidávám CORS hlavičky:
Pokud z clienta pošlu request, který má v sobě hlavičku: ‚X-Requested-With‘: ‚XMLHttpRequest‘, tak mi sice Nette vrátí překreslený snippet, ale až na druhý request, protože se kvůli zmíněné hlavičce posílá preflight request.
Pokud z clienta pošlu request bez přidané hlavičky, tak se pošle pouze 1 request, ale Nette mi bohužel vrátí HTML celého dokumentu místo konkrétního snippetu.
Kvůli chybějící hlavičky vrací metoda isAjax() hodnotu FALSE. Tím se pravděpodobně ignoruje GET „?do“ / POST „_do“ a tak nedojde k překreslení snippetu.
Na 1 CORS request umím zatím překreslit pouze celou komponentu tímhle způsobem:
Ale tím bohužel nepřekreslím vnitřní snippety komponenty :(
- Marek Bartoš
- Nette Blogger | 1275
X-Requested-With: XMLHttpRequest
se používá pro detekování
ajaxové requestu všude a Nette by se toho mělo držet.
V kombinaci cross-origin a ajaxu je preflight request součástí bezpečnostního mechanizmu, bylo by tak rozumnější se s requestem navíc smířit namísto workaroundů. https://markitzeroday.com/…equests.html
- David Grudl
- Nette Core | 8229
Spíš si tam nastav cachování pro preflight a jeden požadavek navíc nehraje roli.
- crassus
- Backer | 78
David Grudl napsal(a):
Spíš si tam nastav cachování pro preflight a jeden požadavek navíc nehraje roli.
Super děkuji moc :)