Test Foro de elhacker.net SMF 2.1

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:


$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
Citarparams – {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

$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 (php) [Seleccionar]

<?php
//Leemos el stream raw y lo guardamos en la variable $postdata
$postdata file_get_contents("php://input");
//Como dicha variable esta en formato json debemos mapearla a un Array usando json_decode
$request json_decode($postdata);
//Imprimo el array completo
echo print_r($requestfalse);
?>




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
[quote author=nsigned link=topic=473521.msg2137945#msg2137945 date=1503674012]
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 (php) [Seleccionar]

<?php
//Leemos el stream raw y lo guardamos en la variable $postdata
$postdata file_get_contents("php://input");
//Como dicha variable esta en formato json debemos mapearla a un Array usando json_decode
$request json_decode($postdata);
//Imprimo el array completo
echo print_r($requestfalse);
?>




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


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