Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/06/2014, 11:58
Avatar de Albuss
Albuss
 
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 9 meses
Puntos: 30
Problema con JSON [PHP y javascript] [encode / decode]

Buenas!

tengo un problema que no logro resolver referente a JSON, PHP y Javascript.
El problema consisten en que desde javascript envio un array JSON a PHP y en php al utilizar la funcion decode() me devuelve un valor null como respuesta.

primero, como empaqueto y envio desde javascript :
Código:
                var estructuraJSONN = '{"nombre":"brais"}';
		var estructuraParseadaJSON = JSON.parse(estructuraJSONN);
						
		var estructuraNativaJSON = JSON.stringify(estructuraParseadaJSON);
		var Qn = "Qn=" + encodeURIComponent(estructuraNativaJSON); // Qn significa consulta nombre
						
		var request = ObjectDeusExMachina.ObjectHttpRequest.loadHttpRequest(); // llamo a la instancia de XMLHttpRequest()
		var url = " *** " // oculto la direccion por movitos obvios				
						
		request.open("POST", url,true);
		request.setRequestHeader("Content-type", "application/x-www-form-urlencoded", true);
		request.send(Qn);
						
		console.log(estructuraNativaJSON); // hago un console.log para ver lo que estamos enviando
						
		request.onreadystatechange = function(){
						
		if( request.readyState == 4 ) {
								
		    if( request.status == 200 ) {
										
			var respuesta =	request.responseText;
			console.log(request.responseText); // otro console.log para ver lo que nos devuelve PHP

                    }
                }
codigo php de como obtengo y manipulo lo que me llega desde Javascript
Código PHP:
Ver original
  1. <?php
  2.  
  3.     $requestName = $_POST['Qn']; // obtenemos lo que hemos enviado desde Javascript
  4.     $requestNameDedoce = json_decode($requestName);
  5.    
  6.     $salida = json_encode($requestNameDedoce); // al usar decode y encode deberia de enviarse el mensaje tal y como llego es decir decodificamos obtenemos un objeto json y volvemos a codificar para enviar un array JSON
  7.     echo $salida; // en el segundo console.log veo que me devuelve null
  8.  
  9. ?>

Aparentemente, al menos para mi, el codigo expuesto deberia funcionar y devolvernos el mismo array json que enviamos, en vez de eso obtengo un valor null como responseText ¿que estoy haciendo mal?