Debido a que no chequeas con isset() ni nada parecido (is_empty, etc) si $_REQUEST['json'] tiene valor... un error se genera... se imprime...y ROMPE CABECERAS DE REDIRECCION!!!
Código PHP:
Ver original<?php
//error_reporting(-1);
$json_array=$_REQUEST['json'];
if (isset($_REQUEST['json']))
?>
<html>
<body>
<script type="text/javascript">
window.location.href = "http://www.cristalab.com";
</script>
</body>
</html>
Otra opcion seria... ob_start() al comienzo o sea evitar que PHP imprima errores, poner un @ delante de $json_array=$_REQUEST['json']; ... etc pero enmascarar el error me parece mala idea