- $routeInfo = $dispatcher->dispatch($this->httpMethod, $cmd);
- if ($routeInfo[0] === Dispatcher::FOUND) {
- $moduleClass = $routeInfo[1];
- $this->parameters = $routeInfo[2];
- } elseif ($routeInfo[0] === Dispatcher::METHOD_NOT_ALLOWED) {
- throw new HTTPException\MethodNotAllowedException($this->l10n->t('Method not allowed for this module. Allowed method(s): %s', implode(', ', $routeInfo[1])));
- } elseif ($this->httpMethod === static::OPTIONS) {
- // Default response for HTTP OPTIONS requests in case there is no special treatment
- $moduleClass = Options::class;
+ // Check if the HTTP method is OPTIONS and return the special Options Module with the possible HTTP methods
+ if ($this->args->getMethod() === static::OPTIONS) {
+ $moduleClass = Options::class;
+ $this->parameters = ['allowedMethods' => $dispatcher->getOptions($cmd)];