Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/06/2012, 12:25
Avatar de Naahuel
Naahuel
 
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Error en la ejecucion json

¿Y cual es el problema?

Si obtenés el clásico error:
Cita:
XMLHttpRequest cannot load http://maps.google.es/maps/geo?outpu...r=true&q=asdas. Origin http://localhost is not allowed by Access-Control-Allow-Origin.
Cambiá:
Código Javascript:
Ver original
  1. dataType:"json"
Por:
Código Javascript:
Ver original
  1. dataType:"jsonp"

Pero esto origina un problema (como acabo de darme cuenta) y es que al hacer esto, el servidor de Google ya no envía la data codificada como objeto JSON sino como texto Javascript y tira el siguiente error:
Cita:
"Uncaught SyntaxError: Unexpected token :"
Te marca un error en la respuesta JSON del servidor (por lo que te dije antes). La solución a esto es hacer el pedido con PHP (hacer una especie de wrapper) con AJAX hacer el pedido a ese php.

Resumiendo, hacé un PHP con este contenido:
Código PHP:
Ver original
  1. <?php
  2.  
  3. $json_o = file_get_contents('http://maps.google.es/maps/geo?output=json&sensor=true&q=' . $_REQUEST['q']);
  4.  
  5. echo $json_o;
  6.  
  7. ?>

Llamalo, por ejemplo, google_maps.php. Ahora tu JavaScript debería ser así:
Código Javascript:
Ver original
  1. $.ajax({
  2.     url: "google_maps.php?q=" + escape($("#busprin").val()),
  3.     dataType: "json",
  4.     success: function(data){
  5.          alert(data.name);
  6.         },
  7.     error:function(data){
  8.          alert('Error');
  9.         }
  10. });

Eso funciona perfectamente. Observá el uso de escape() para el valor del input.


Espero haya sido claro. Un saludo.
__________________
nahueljose.com.ar