Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

328
Vistas
axios http siempre regresa con datos vacíos

Hice esta pregunta antes y no pude obtener una respuesta. Pude usar el método: 'obtener' como se muestra a continuación para que funcione, así que estuvo bien, pero esta vez necesito usar la publicación. En un proyecto diferente (usando react, redux, php, webpack, xampp) ha resurgido el mismo problema y estoy tratando de resolverlo. Asi que aqui esta:

registro.php

 echo $_GET['task'];

índice.js

 const values = {task: 'doSomething', username: 'username'} axios({ url: "./server/register.php", timeout: 20000, method: 'get', params: values }).then(function(response){console.log(response.data)})

Cuando hago lo anterior, todo está bien y los datos se cierran como 'hacerAlgo'. Sin embargo, cuando intento usar axios({método: 'POST'}) y cambiar el php a $_POST['tarea'] aparece un error que dice que $_POST['tarea'] no está definido como se muestra a continuación:

índice.js

 axios({ url: "/projects/myProject/server/register.php", method: 'post', data: values }).then(function(response){console.log(response.data)})

registro.php

 echo $_POST['task'];

Aviso : índice indefinido: tarea

Además, cuando intento esto usando axios.post() encuentro exactamente el mismo problema. Quiero usar una solicitud de publicación aquí. ¿Alguien puede arrojar algo de luz sobre esto para mí?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

De acuerdo, después de rascarme la cabeza bastante, encontré una respuesta. En PHP, esta línea debe agregarse antes de poder acceder a cualquier dato POST:

 $_POST = json_decode(file_get_contents('php://input'), true); echo $_POST['task'];

Según tengo entendido, los datos que se ingresan desde axios son JSON, por lo que debemos devolverlos en una cadena codificada en JSON usando file_get_contents() y luego convertir esto en una variable php de la cadena codificada en JSON usando json_decode. Espero que esto ayude a alguien más. Gracias.

over 4 years ago · Santiago Trujillo Denunciar

0

Tu URL tiene un formato incorrecto: es una ruta, no una URL. Tiene que usar una URL relativa (/register.php) o absoluta ( http://localhost/register.php ) dependiendo de cómo sirva este archivo con su servidor web.

over 4 years ago · Santiago Trujillo Denunciar

0

Como alternativa, en el lado del cliente puede manipular los datos en el JavaScript antes de publicarlos, eliminando la necesidad de editar los datos POST en el lado del servidor:

 var formatAxiosPostData = function (obj) { // Create formData object: var formDataObject = new FormData(); // This step necessary when the obj contains additional overhead data, // such as what's created on a 'this.$data' Vue.js object: obj = JSON.parse(JSON.stringify(obj)); // Fill formData object with the key-value pairs: Object.keys(obj).forEach(function (key) { formDataObject.append(key, obj[key]); }); return formDataObject; }; // example usage: axios({ url: "/projects/myProject/server/register.php", method: 'post', data: formatAxiosPostData(values) }).then(function (response){ console.log(response.data); });
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda