allow to process real JSON requests with Content-Type: application/json

so far we always send it encoded as form, which is still supported of cause
This commit is contained in:
Ralf Becker 2018-08-15 13:10:15 +02:00
parent c69532e7f0
commit 61577b45b1

View File

@ -7,7 +7,6 @@
* @package api * @package api
* @subpackage ajax * @subpackage ajax
* @author Andreas Stoeckel <as@stylite.de> * @author Andreas Stoeckel <as@stylite.de>
* @version $Id$
*/ */
use EGroupware\Api; use EGroupware\Api;
@ -116,7 +115,15 @@ if (isset($_GET['menuaction']))
$json->isJSONRequest(true); // otherwise exception is not send back to client, as we have not yet called parseRequest() $json->isJSONRequest(true); // otherwise exception is not send back to client, as we have not yet called parseRequest()
throw new Json\Exception\ScriptTags("JSON Data contains script tags. Aborting..."); throw new Json\Exception\ScriptTags("JSON Data contains script tags. Aborting...");
} }
// check if we have a real json request
if (strpos($_SERVER['CONTENT_TYPE'], 'application/json') === 0)
{
$json->parseRequest($_GET['menuaction'], file_get_contents('php://input'));
}
else
{
$json->parseRequest($_GET['menuaction'], $_REQUEST['json_data']); $json->parseRequest($_GET['menuaction'], $_REQUEST['json_data']);
}
Json\Response::get(); Json\Response::get();
exit(); exit();
} }