Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Crear JSON con PHP

Estas en el tema de Crear JSON con PHP en el foro de PHP en Foros del Web. Hola. Realmente no sé donde escribir este post, ya que es mitad PHP y mitad AngularJS. Os explico: Quiero crear una api rest para despues ...
  #1 (permalink)  
Antiguo 21/10/2014, 17:49
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Exclamación Crear JSON con PHP

Hola. Realmente no sé donde escribir este post, ya que es mitad PHP y mitad AngularJS. Os explico:

Quiero crear una api rest para despues leerla en angularjs. He empezado haciendo un rest sencillo, que devuelve un json:

así lo creo en php:

Código PHP:
Ver original
  1. $arr = array(0 => array("nombre" => "Juan Palomo" ), 1 => array("nombre" => "Yo me lo guiso" ), 2 => array("nombre" => "Yo me lo como" ));
  2. echo json_encode($arr);

La URL para acceder es tipo: http://www.miweb.com/personas

Y sale esto por pantalla:

Código HTML:
Ver original
  1. [{"nombre":"Juan Palomo"},{"nombre":"Yo me lo guiso"},{"nombre":"Yo me lo como"}]

Pues bien, cuando intento capturar los datos con angular, me dice que no, fallo.

Código Javascript:
Ver original
  1. $http.get('http://www.miweb.com/personas').success(function(data)

No estoy contruyendo bien el json?

Gracias.
  #2 (permalink)  
Antiguo 21/10/2014, 17:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Crear JSON con PHP

¿Tenemos que adivinar el valor de "data" que recibes?

Porque eso ya sería tema de Javascript, ¿cómo estás depurando la respuesta? ¿ya revisaste la documentación de Angular al respecto?

Porque vamos, problema de PHP no es, envías datos JSON de forma correcta (aunque te hace falta un header("Content-Type: application/json")) y ahí no hay error alguno (salvo la omisión del header).
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 21/10/2014, 19:07
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Crear JSON con PHP

Angular está bien, porque si en el get pongo:
http://restcountries.eu/rest/v1/region/europe

Funciona. El problema está en mi .php o a saber que.

He utilizado Slim para crear la api rest:

Código PHP:
Ver original
  1. $app->get("/categorias/",function() use($app)
  2.     {
  3.         try{
  4.             $database = Database::conectar();
  5.             $sql = "SELECT * FROM categorias";
  6.             $database->setQuery($sql);
  7.             if ($database->loadObjectList()) {
  8.                 $categorias = $database->loadObjectList();
  9.             } else {
  10.                 //KO               
  11.                 return false;
  12.             }
  13.        
  14.             $app->response->headers->set("Content-type", "application/json");
  15.             $app->response->status(200);
  16.             $app->response->body(json_encode($categorias));
  17.         }catch(PDOException $e)
  18.         {
  19.             echo "Error: " . $e->getMessage();
  20.         }
  21.     });

** Sé que el catch PDO está mal. No hacer caso.

Si accedo a la web, me muestra el JSON correctamente:

Código HTML:
Ver original
  1. [{"id_categoria":"1","categoria":"Peluquer\u00edas"},{"id_categoria":"2","categoria":"Restaurantes"}]

Pero Angular parece que no... Pero como digo, el JSON de antes, lo lee sin problemas.
  #4 (permalink)  
Antiguo 21/10/2014, 19:13
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Crear JSON con PHP

¿Y qué dice exactamente en el mensaje de error?
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 21/10/2014, 19:22
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Crear JSON con PHP

Vale, está solucionado... de momento. Me saltaba este error el navegador:

No 'Access-Control-Allow-Origin' header is present on the requested resource.

Servidores baratos y sus limitaciones....

Basta con poner en el PHP:

Header set Access-Control-Allow-Origin "*"

Etiquetas: json
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:58.