modifikace metody HttpRequest->isAjax
- sharkcz
- Člen | 28
Poprosil bych o změnu metody HttpRequest->isAjax, aby pokud není nastavená hlavička X-Requested-With detekovala, zdali požadavek neobsahuje nastavení nějaké vlastnosti v GET/POST. Vlastnost by se mohla jmenovat například isAjax, ale jméno by mohlo být konfigurovatelné.
Důvod:
Prohlížeč Chrome má problém se self signed certifikátem. Po odsouhlasení,
že si přeji pokračovat na zabezpečených stránkách se tento souhlas
nevztahuje na AJAXový požadavek odeslaný z HTTP stránky na HTTPS
s preflight requestem. Nelze tedy propagovat hlavičku X-Requested-With.
Obecně předpokládám, že by se změna mohla hodit i v jiných situacích, kdy například JS framework nevkládá hlavičku sám od sebe. (Což není moje situace.)
- smasty
- Člen | 90
sharkcz:
Môžeš si vytvoriť vlastnú implementáciu rozhrania Nette\Http\IRequest (napr. podedením Nette\Http\Request), kde si správanie prispôsobíš tvojím potrebám.
Edit:
Tú si potom zaregistruješ ako službu httpRequest
do Dependency
Injection Containeru.
Tvoja implementácia by mohla vyzerať napr. takto:
class MyHttpRequest extends Nette\Http\Request
{
public function isAjax()
{
return parent::isAjax() || $this->getQuery('is_ajax') === 'true';
}
}
Editoval smasty (9. 9. 2011 17:27)