JavaScript - Pantalla de login con llamada a api

 
Vista:

Pantalla de login con llamada a api

Publicado por Marta (3 intervenciones) el 11/05/2021 08:53:35
Buenos días. Necesito hacer una pantalla de Login con email y contraseña que cuando pulse al boton de validar/acceso me devuelva un token cuando llamo a un api. Tengo este código, no sé que me falla, he estado viendo tutoriales y no acabo de entenderlo, a ver si alguien puede echarme una mano. Un saludo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<!DOCTYPE html>
<html>
<title> FORMULARIO ACCESO COUNCILBOX </title>
    <body>
       <h1>LOGIN</h1>
      <form id="formulario" name="formulario" method="POST">
        <div>
        <label>
          <p>Email</p>
          <input type="text" id="email" name="email" placeholder="email"   />
        </label>
        <label>
          <p>Password</p>
          <input type="password" id="password" name="password" placeholder="password" />
        </label>
 
          <button  type="submit" onclick="Login()">Login</button>
      </div>
      </form>
    </body>
 
    <script>
 
 function Login(){
 
    let form = document.forms["formulario"];
    let fd = new FormData(form);
    let data = {};
    for (let [key, prop] of fd) {
      data[key] = prop;
    }
    VALUE = JSON.stringify(data, null, 2);
    console.log(VALUE);
 const url= "https://www.getpostman.com/collections/dc3a2b2ce35f95d6eab5";
    const myHeaders = new Headers();
    myHeaders.append('Content-Type', 'application/json');
    fetch()(url, {
            method: "POST",
                headers: {
              "Content-Type": "application/json",
            },
            body: VALUE,
          })
          .then(data => data.json())
    .then(data =>  { console.log(data) })
    .catch((err) => {
        console.error(err);
        })
 
  }
    </script>
 
 
 
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Pantalla de login con llamada a api

Publicado por joel (895 intervenciones) el 11/05/2021 13:15:15
Hola Marta, el probema que tienes, es que haces un submit... por lo que cada vez se refresca la pagina...

Cambia el submit por un button... es decir cambia esta linea:
1
<button type="submit" onclick="Login()">Login</button>
por esta:
1
<button type="button" onclick="Login()">Login</button>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pantalla de login con llamada a api

Publicado por Marta (3 intervenciones) el 11/05/2021 13:30:13
Lo he hecho, pero sigue dando fallo
Linea 37 index.html, fetch is not a function. at Login index.html:37 at HTMLButtonElement.onclick index.html:17
failed to execute fetch on window: 1 argument required but only 0 present. No acabo de entender que estoy haciendo mal. La verdad es que estoy empezando en esto y estoy un poco perdida
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Pantalla de login con llamada a api

Publicado por joel (895 intervenciones) el 11/05/2021 14:22:09
Si cierto, te sobra un parentesis ahi...
no es así:
1
fetch()(url, {...
si no que es:
1
fetch(url, {...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar