Estoy haciendo una llamada $post a un archivo .php que devuelve datos json. Funciona bien si solo uso un .php, pero si trato de incluir otro .php, cae en la devolución de llamada .failed. He reunido un ejemplo aquí con un .php incluido que ni siquiera hace nada.
JavaScript:
$.post("/test_php/cgi.php", l_cDB_arg_array, function(o) { console.log("Returned from db_interface call" + JSON.stringify(o)); console.log(JSON.stringify(o)); l_this.showLayer("top of the world", false); }).fail(function(response) { console.log('Error: ' + JSON.stringify(response)); });Primero cgi.php:
<?php include "noop.php"; header("Content-Type: application/json; charset=UTF-8"); $ret = json_decode('{"some":"data"}'); echo json_encode($ret);Segundo noop.php
<?phpResultado al incluir noop.php en cgi.php
Error: {"readyState":4,"responseText":"{\"some\":\"data\"}","status":200,"statusText":"OK"}Resultado al no incluir noop.php en cgi.php
Returned from db_interface call{"some":"data"}Mirando todos los argumentos .fail obtengo:
respuesta: {"readyState":4,"responseText":"{"some":"data"}","status":200,"statusText":"OK"}
textStatus: error del analizador
errorThrown: SyntaxError: Token inesperado en JSON en la posición 0
Mover el encabezado antes de incluir no cambió nada.
Instalé Eclipse y edité el noop.php con él. Pude ver una línea más en el archivo con el editor de eclipse, que se mostraba en Visual Studio. Eliminar la línea adicional con eclipse resolvió el problema.