I want to create a simple rest api authorization service where js/html is client, golang is server and postgres is db. I had success posting body from postman and I received expected answer and data were added to db. But when I am trying to do the same from my js/html client the answer is null - {"message":"Invalid request","status":false}
.
Here is my golang example code:
var CreateAccount = func(w http.ResponseWriter, r *http.Request) {
account := &models.Account{}
err := json.NewDecoder(r.Body).Decode(account) //decode the request body into struct and failed if any error occur
if err != nil {
utils.Respond(w, utils.Message(false, "Invalid request"))
return
}
resp := account.Create() //Create account
utils.Respond(w, resp)
}
Client:
'use strict'
const form = document.getElementById('form');
const url = "http://localhost:8080/api/user/login";
const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
form.addEventListener('submit', (e) => {
e.preventDefault();
const data = new FormData(form);
let preparedData = JSON.stringify([...data].flat());
console.log(preparedData)
fetch(url, {
method: "POST",
body: data,
})
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel='stylesheet' href='style.css'>
<title>Real Estate Moskow Hack</title>
</head>
<body>
<header class="header">
</header>
<!-- HEADER END -->
<main class="main">
<form action="http://localhost:8080/api/user/login" method="POST" id="form">
<input class="email" type="text" name="email" placeholder="Введите email">
<input class="password" type="password" name="password" id="password" placeholder="Введите пароль">
<button class="button" type="submit">send data</button>
</form>
</main>
<!-- MAIN END -->
<footer class="footer">
</footer>
<script src="script.js"></script>
</body>
</html>
Please tell me where there might be a problem on a server or client and why?
Via Active questions tagged javascript - Stack Overflow https://ift.tt/XIp7yGY
Comments
Post a Comment