AJAX.query

edited noviembre 2007 in Bugs y Problemas
Tengo una acción en un controlador que devuelve una cadena, como el ejemplo saludo del libro, cuando trato de ejecutar el AJAX.query, me devuelve el resultado siguiente:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/05/library/libchart/libchart.php:25) in /var/www/05/library/kumbia/xml/xml.php on line 55

Warning: Cannot modify header information - headers already sent by (output started at /var/www/05/library/libchart/libchart.php:25) in /var/www/05/library/kumbia/xml/xml.php on line 56

Warning: Cannot modify header information - headers already sent by (output started at /var/www/05/library/libchart/libchart.php:25) in /var/www/05/library/kumbia/xml/xml.php on line 57

Alguien sabe como solucionarlo, se está trabajando en base a este error.
Esto sólo pasa cuando lo que se devuelve no es una vista, o sea, si no se pone:
$this->set_response('view');

Comentarios

  • Saludos, Sera que puedes pasar el código que estas utilizando...?
  • edited 11:29
    class MapaController extends ApplicationController{
    function saludo() {

    return "Hola mundo";
    }
    }

    y en la vista:
    <script type="text/javascript">
    alert(AJAX.query('mapa/saludo'));
    </script>

    Aqui el mensaje que muestra es 'undefined', pero con el firebug veo que lo que devuelve la petición es:
    <br />

    <b>Warning</b>: Cannot modify header information - headers already sent by (output started at /var/www

    /05/library/libchart/libchart.php:25) in <b>/var/www/05/library/kumbia/xml/xml.php</b> on line <b>55

    </b><br />

    <br />

    <b>Warning</b>: Cannot modify header information - headers already sent by (output started at /var/www

    /05/library/libchart/libchart.php:25) in <b>/var/www/05/library/kumbia/xml/xml.php</b> on line <b>56

    </b><br />

    <br />

    <b>Warning</b>: Cannot modify header information - headers already sent by (output started at /var/www

    /05/library/libchart/libchart.php:25) in <b>/var/www/05/library/kumbia/xml/xml.php</b> on line <b>57

    </b><br />

    <?xml version='1.0' encoding='iso8859-1'?>

    <response>

    <data><![CDATA[Hola mundo]]></data>

    </response>
  • edited 11:29
    Disculpen por no haberlo dicho antes, esto pasa con la version 5, en la 4 funciona bien
    class MapaController extends ApplicationController{
    function saludo() {

    return "Hola mundo";
    }
    }

    y en la vista:
    <script type="text/javascript">
    alert(AJAX.query('mapa/saludo'));
    </script>

    Aqui el mensaje que muestra es 'undefined', pero con el firebug veo que lo que devuelve la petición es:
    <br />

    <b>Warning</b>: Cannot modify header information - headers already sent by (output started at /var/www

    /05/library/libchart/libchart.php:25) in <b>/var/www/05/library/kumbia/xml/xml.php</b> on line <b>55

    </b><br />

    <br />

    <b>Warning</b>: Cannot modify header information - headers already sent by (output started at /var/www

    /05/library/libchart/libchart.php:25) in <b>/var/www/05/library/kumbia/xml/xml.php</b> on line <b>56

    </b><br />

    <br />

    <b>Warning</b>: Cannot modify header information - headers already sent by (output started at /var/www

    /05/library/libchart/libchart.php:25) in <b>/var/www/05/library/kumbia/xml/xml.php</b> on line <b>57

    </b><br />

    <?xml version='1.0' encoding='iso8859-1'?>

    <response>

    <data><![CDATA[Hola mundo]]></data>

    </response>
  • edited 11:29
    En funcion de lo que pude leer del error, parece que proviene desde el libchart.

    Prueba eliminarlo de las extensions en boot.ini

    Y cuentas a ver que tal.

    Saludos.
  • edited 11:29
    Si, eso ya lo había hecho y me da el mismo error.
  • edited 11:29
    Una pregunta, con que objetivo aplicas un return al texto?

    Si es para renderizar texto prueba render_text.

    Saludos
  • edited 11:29
    Es para devolver en general cualquier dato, que pueda ser utilizado desde donde se hace la petición, por ejemplo, quisiera pedir los datos de un persona, para mostrarlos en un ventana, otro mas cercano a lo que estoy haciendo, dado un punto de un mapa, obtener los datos relativos al mismo, altura, si es un edificio el numero, en fin, cualñquier característica que pueda tener el mapa en ese punto, y esos datos los quiero mostrar, pero como defina la lógica de presentación, por eso necesito delvover un texto o un xml en general desde una acción de un controlador.
  • edited 11:29
    Lo puedes hacer con render_text, claro que desde un punto de vista estetico y logico seria mejor retornarlo desde la accion.

    El texto (cualquier tipo de dato pero en formato de texto, numero, fecha, etc) que renderices con render_text, supongamos que utilices jQuery:

    Mi petición ajax
    &lt;script type=&quot;text/javascript&quot;&gt;
    var saludo = $&#46;ajax&#40;&#123;
    	url&#58; &quot;mapa/saludo&quot;,
    	async&#58; false
    &#125;&#41;&#46;responseText;
    alert&#40;saludo&#41;;
    &lt;/script&gt;
    

    Y en mi controlador:
    class MapaController extends ApplicationController&#123;
    	function saludo&#40;&#41; &#123;
    		$this-&gt;set_response&#40;&quot;view&quot;&#41;;
    		render_text&#40;'Hola mundo'&#41;;
    	&#125;
    &#125; 
    

    Espero que esto te ayude un poco.

    Saludos
Sign In or Register to comment.