diff --git a/composer.json b/composer.json index 7b7ae87c0..15d65ccf7 100644 --- a/composer.json +++ b/composer.json @@ -101,6 +101,7 @@ ] }, "scripts": { + "api-17": "vendor/bin/phpdoc-md generate system/src > user/pages/14.api/default.17.md", "api-16": "vendor/bin/phpdoc-md generate system/src > user/pages/14.api/default.16.md", "api-15": "vendor/bin/phpdoc-md generate system/src > user/pages/14.api/default.md", "post-create-project-cmd": "bin/grav install", diff --git a/system/src/Grav/Framework/Controller/Traits/ControllerResponseTrait.php b/system/src/Grav/Framework/Controller/Traits/ControllerResponseTrait.php index 5beeafcd9..fcce591d0 100644 --- a/system/src/Grav/Framework/Controller/Traits/ControllerResponseTrait.php +++ b/system/src/Grav/Framework/Controller/Traits/ControllerResponseTrait.php @@ -16,6 +16,7 @@ use Grav\Common\Debugger; use Grav\Common\Grav; use Grav\Framework\Psr7\Response; use Grav\Framework\RequestHandler\Exception\RequestException; +use Grav\Framework\Route\Route; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; @@ -135,8 +136,14 @@ trait ControllerResponseTrait $accept = $this->getAccept(['application/json', 'text/html']); - if ($accept === 'text/html') { - $request = $this->getRequest(); + $request = $this->getRequest(); + $context = $request->getAttributes(); + + /** @var Route $route */ + $route = $context['route'] ?? null; + + $ext = $route ? $route->getExtension() : null; + if ($ext !== 'json' && $accept === 'text/html') { $method = $request->getMethod(); // On POST etc, redirect back to the previous page.