/** * method: outputJSON * * todo: write documentation * * note: I hate this function name, I think we should change it to something more elegant */ public static function outputJSON($array, $block = true) { header("Cache-Control: no-cache"); header("Content-Type: application/json"); // NOTE: perhaps it would be nice to limit this CORS header in the future if (isset($_SERVER["HTTP_ORIGIN"])) { $origin = $_SERVER["HTTP_ORIGIN"]; header("Access-Control-Allow-Origin: {$origin}"); header("Access-Control-Allow-Credentials: true"); } $json = json_encode($array); // if there is a callback specified, wrap up the json into a jsonp format $jsonp = Amslib_GET::get("callback"); if ($jsonp) { $json = "{$jsonp}({$json})"; } Amslib_Benchmark::log(); if ($block === true) { die($json); } if ($block === false) { print $json; } return $json; }