У меня сейчас проблема с моим POST-запросом.
У меня есть простая функция, которая отвечает за отправку данных на мой сервер с использованием AJAX.
handleSubmit(event) {
var http = new XMLHttpRequest(); // object allwos us to make http requests
//Lets make a request
http.open("POST", "http://localhost:3000/register", true);//set up the request for us: type of request we want, where we want the data from, do we want it to be sync or async?
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//each time the ready state changes on the http object, it will fire this function.
http.onreadystatechange = function(){
console.log(http); // lets see the ready state changing...
//once the ready state hits 4(request is completed) && status is 200 (which is okay), lets do something with data.
if(http.readyState == 4 && http.status == 200){
}else{
console.log('Error: ' + http.status); // An error occurred during the request.
}
}
let user = {
email: "john@gmail.com"
};
http.send(JSON.stringify(user));
}
Мой код на стороне сервера довольно прост и содержит конечную точку POST.
const express = require('express')
const app = express()
const port = 3000
//Body Parser Middleware
app.use(express.json());
app.use(express.urlencoded({extended: true}))
app.post('/register', (req, res) => {
console.log(req);
})
app.listen(port, () => console.log(`Example app listening on port ${port}!`))
Теперь, после того, как handleSubmit сработает, тело запроса моего объекта становится следующим:
{ '{"email":"john@gmail.com"}': '' }
Я очень смущен и не совсем уверен, как поступить.
Спасибо!