Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Razzari en 16 Agosto 2017, 00:29 am



Título: [Resuelto] No puedo acceder a parametro de mi peticion $http en mi backend PHP
Publicado por: Razzari en 16 Agosto 2017, 00:29 am
Hola foro, basicamente el titulo describe mi problema, aca va el codigo:

(https://fotos.subefotos.com/d4ecb1b42db88d47ea25166422cb6183o.png)

ese es mi javascript, esoty utilizando angularJs como framework en el frontend, como ven en la consola, logueo lo que me devuelve y dice :
"<b>Notice</b>:  Undefined index: name in <b>C:\xampp\htdocs\api.rest.security\animalesAPI.php</b> on line <b>26</b><br />"

y este es mi codigo php:

(https://fotos.subefotos.com/8345aa58fac7c6de364577c859783125o.png)


Saludos, la verdad estoy desorientado


Título: Re: No puedo acceder a parametro de mi peticion $http en mi backend PHP
Publicado por: engel lex en 16 Agosto 2017, 00:31 am
edito

estás pasando por method GET y leyendo POST


Título: Re: No puedo acceder a parametro de mi peticion $http en mi backend PHP
Publicado por: Razzari en 16 Agosto 2017, 00:38 am
ya cambie las miniaturas, si me di cuenta cuando subi las fotos que estaba usando GET corri a cambiarlo, pero sigue logueandome el mismo error  :o


https://fotos.subefotos.com/27f4ae512dd397e45f92b0d60a0e7cf3o.png (https://fotos.subefotos.com/27f4ae512dd397e45f92b0d60a0e7cf3o.png)

Voy a seguir revisando, pero siempre accedí a mis peticiones por post en php con $_POST[''],.esta vez no se que sucede


· Las imagenes no deben ser mayores a 800x600
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex


Título: Re: No puedo acceder a parametro de mi peticion $http en mi backend PHP
Publicado por: engel lex en 16 Agosto 2017, 00:43 am
esto sigue siendo GET!
(http://i.imgur.com/OLAg3T1.png)

tienes que enviar como POST


Título: Re: No puedo acceder a parametro de mi peticion $http en mi backend PHP
Publicado por: Razzari en 16 Agosto 2017, 00:47 am
Pero bueno, era para ver si estaba obviando algo y otros ojos veian lo que yo no:

Consola:

https://fotos.subefotos.com/b3b594cbf82f373fbffc6432ee5f3bd3o.png

javascript:

https://fotos.subefotos.com/8c089838229b372cecb52a9fb8202df0o.png

PHP:

Código:
 $name = $_POST['name'];
 echo $name;


Voy a seguir viendo y revisando  :-\


Título: Re: No puedo acceder a parametro de mi peticion $http en mi backend PHP
Publicado por: engel lex en 16 Agosto 2017, 00:53 am
te soy sincero, poco trabajé con angular... no me gustó... siento que todo lo que hace, más facil lo puedo hacer yo mismo y mano... pero cada quien trabaja como más le place en la cama... XD

pero leo la documentación

https://docs.angularjs.org/api/ng/service/$http (https://docs.angularjs.org/api/ng/service/$http)

sobre los argumentos de la función
Citar
params – {Object.<string|Object>} – Map of strings or objects which will be serialized with the paramSerializer and appended as GET parameters.

creo que deberías cambiar params por data


Título: Re: No puedo acceder a parametro de mi peticion $http en mi backend PHP
Publicado por: Razzari en 16 Agosto 2017, 01:04 am
Código:
$http({
                method: 'POST',
                url: 'http://localhost:8080/api.rest.security/',
                data:{
                    'name' : "ejem",
                }
            }).then(function successCallback(response) {
                //token=response.data;
                console.log(response.data);
                //getData();
            }, function errorCallback(response) {

            });
        }


Estoy usando data: ahora y tampoco, voy a seguir sudando con semejante tonteria y  cunado lo resuelva subo el error y/o   solucion


Título: Re: No puedo acceder a parametro de mi peticion $http en mi backend PHP
Publicado por: engel lex en 16 Agosto 2017, 01:11 am
puedes usar $http.post por lo que veo eso puede funcionar, mira allí mismo la doc


Título: Re: No puedo acceder a parametro de mi peticion $http en mi backend PHP
Publicado por: [u]nsigned en 25 Agosto 2017, 17:13 pm
Hola, el modulo $http de angular hace peticiones de tipo application/json, y PHP solo rellena la variable global $_POST cuando la peticion llega en formato application/x-www-form-urlencoded o multipart/form-data.

La solucion mas facil es indicarle a PHP que en lugar de leer desde $_POST tome los valores directamente en formato raw desde el stream php://input

Código
  1. <?php
  2. //Leemos el stream raw y lo guardamos en la variable $postdata
  3. $postdata = file_get_contents("php://input");
  4. //Como dicha variable esta en formato json debemos mapearla a un Array usando json_decode
  5. $request = json_decode($postdata);
  6. //Imprimo el array completo
  7. echo print_r($request, false);
  8. ?>
  9.  
  10.  

Espero que te sirva de ayuda. yo me canse de renegar con esto cuando usaba Angular 1.6 + CodeIgniter 3


Título: Re: No puedo acceder a parametro de mi peticion $http en mi backend PHP
Publicado por: Razzari en 26 Agosto 2017, 00:59 am
Hola, el modulo $http de angular hace peticiones de tipo application/json, y PHP solo rellena la variable global $_POST cuando la peticion llega en formato application/x-www-form-urlencoded o multipart/form-data.

La solucion mas facil es indicarle a PHP que en lugar de leer desde $_POST tome los valores directamente en formato raw desde el stream php://input

Código
  1. <?php
  2. //Leemos el stream raw y lo guardamos en la variable $postdata
  3. $postdata = file_get_contents("php://input");
  4. //Como dicha variable esta en formato json debemos mapearla a un Array usando json_decode
  5. $request = json_decode($postdata);
  6. //Imprimo el array completo
  7. echo print_r($request, false);
  8. ?>
  9.  
  10.  

Espero que te sirva de ayuda. yo me canse de renegar con esto cuando usaba Angular 1.6 + CodeIgniter 3


Funciono a la perfección, estuve leyendo un poco de documentación de esta tema y es la manera correcta de hacerlo !!!
Espero que le sea de ayuda a alguien mas

Gracias y saludos !!!!!!    ;D ;D ;D ;D ;D ;D ;D