Jakým způsobem přidám OPTIONS do $allowedMethods v Presenteru?

crassus
Backer | 76
+
0
-

Ahoj, dnes jsem začal dostávat error:

Nette\Application\BadRequestException #405
Method OPTIONS is not allowed

Způsobuje to Presenter, protože metoda OPTIONS není uvedena v proměné:

/** @var string[] */
public $allowedMethods = [‚GET‘, ‚POST‘, ‚HEAD‘, ‚PUT‘, ‚DELETE‘];

Jakým způsobem tohle můžu nastavit přes config nebo jak to se to fixnout?

stpnkcrk
Generous Backer | 190
+
+1
-

V konstruktoru můžeš udělat

$this->allowedMethods[] = 'OPTIONS';
crassus
Backer | 76
+
0
-

stpnkcrk napsal(a):

V konstruktoru můžeš udělat

$this->allowedMethods[] = 'OPTIONS';

Super děkuji moc. Funguje to.

dms
Člen | 90
+
0
-

Dal jsem na to PR https://github.com/…ion/pull/316 protoze to potrebujeme skoro na vsech projektech

dms
Člen | 90
+
0
-

Jasně, chápu s tím OPTIONS že se musí přidávat růčo. Ten PATCH chyběl, ale už je tam taky koukám. Blbé je že to bylo uvedené v setinkové verzi a v releasu není zmíněn possible BC break. Trochu nám to rozbilo pár aplikací, ale už opravené :)

Rick Strafy
Nette Blogger | 78
+
+1
-

Kdo by na tenhle error v logu narazil, tak si pridejte do Error4xxPresenter nad definici tridy tohle:

#[Requires(methods: ['GET', 'POST', 'HEAD', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'])]

Jinak u tech erroru by mozna mohla byt vyjimka aby kdyz to uz spadne do ErrorPresenteru at to metody nekontroluje, protoze vim si predstavit ze temer kazdy projekt bude mit u updatu tenhle problem a ne kazdeho to hned napadne, ze proc, ja jsem to testoval pred nasazenim na produkci a taky jsem se chvili zamyslel ze proc to vubec loglo kdyz je to BadRequest.