AnswerBun.com

¿Como puedo mostrar una peticion Ajax POST en el HTML?

Stack Overflow en español Asked on January 6, 2022

he intentado de todo para poder mostrar un POST en HTML con un APIrest de reqres.in intentando poner los datos que introduzca el usuario en los inputs en un cuadro pero me ha parecido particularmente dificil.

Me gustaria que los datos que introduzca el usuario aparecieran dentro del cuadro de #caja, pero a pesar de todo me sigue apareciendo el siguiente mensaje de error en la consola:

Uncaught TypeError: Cannot read property ‘forEach’ of undefined
at Object.success (ajax.js:35)

HTML:

<form action="https://reqres.in/api/users" method="POST" id="formulario">
        <p>
            Nombre: <input type="text" name="name">
        </p>
        <p>
            Web: <input type="text" name="web">
        </p>
        <p>
            <input type="submit" value="Registrar" id="submit">
        </p>
    </form>
    <span id="aviso">Usuario Registrado con Exito</span>
    <div id="datos">

    </div>

JS:

$("#formulario").click(function(response){
        response.preventDefault();

        var usuario = {
            "nombre": $('input[name="name"]').val(),
            "web": $('input[name="web"]').val()
        }

        $.post($(this).attr("action"), usuario, function(response){
            console.log(response);

        usuario.response.forEach(function(element){
                $("#datos").append("<ul><li><p>"+element+"</p></li></ul>");
        });
        return false;
        });

    });

One Answer

primero que nada debemos conocer que respuesta te devuelve el servicio https://reqres.in/api/users y haciendo un par de pruebas la respuesta es la siguiente:

{
    "nombre": "Juan",
    "web": "www.google.com",
    "id": "578",
    "createdAt": "2020-07-24T23:24:47.951Z"
}

Ahora, por cómo lo veo, deberías trabajar con el objeto de respuesta que obtienes como resultado (el que vemos arriba que tiene 4 propiedades).

Por otro lado, el error del forEach es por que en primer lugar la propiedad usuario.response es undefined ya que el objeto usuario no tiene dicha propiedad y la sentencia forEach no puede iterar sobre una propiedad no definida.

Por último, la información que deberias mostrar dentro del div podría ser algo como:

var datos = $('<ul></ul>');
var name = $('<li></li>').text(response.nombre).appendTo(datos);
var name = $('<li></li>').text(response.web).appendTo(datos);
var name = $('<li></li>').text(response.id).appendTo(datos);
$("#datos").append(datos);

Saludos.

Answered by Fernando Jiménez on January 6, 2022

Add your own answers!

Related Questions

Mi formulario de contacto no funciona en otros hostings

1  Asked on November 17, 2021 by connie-r-m

         

Necesito insertar un video con javafx en mi proyecto y me da este error

1  Asked on November 17, 2021 by jose-luis-sanchez-garcia

       

MySQL – Stored Procedure Error

1  Asked on November 17, 2021 by elba-nanero

 

ERROR EN LA CONSULTA

1  Asked on November 17, 2021

     

Mi arreglo borra los valores tras ser llenado

1  Asked on November 17, 2021 by marcelo-avendao

       

Paginación de resultados con JSP y MySql

1  Asked on November 17, 2021 by harold-rueda-antolinez

       

Agregar String con multineas a una lista Java

2  Asked on November 17, 2021 by fabian-feriks

   

Exportar una consulta a Excel

0  Asked on November 15, 2021 by proteus8

     

Join en una relacion laravel

1  Asked on November 15, 2021 by anonimo21

 

Agregar un texto a un pom.xml desde Java

2  Asked on November 15, 2021 by daniel-morales

   

Paginar consulta con Linq

2  Asked on November 15, 2021 by jhon-castrillon

   

Uso correcto de localstorage

2  Asked on November 15, 2021 by lleims

     

Ask a Question

Get help from others!

© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP