From 068948e1a26aedcdfceac1e8ab1b17ecd58b8a26 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Wed, 25 Mar 2020 15:08:00 +0200 Subject: [PATCH] Fixed response for .json being HTML --- composer.json | 1 + .../Controller/Traits/ControllerResponseTrait.php | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) 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.