【发布时间】:2022-01-06 21:34:41
【问题描述】:
我正在尝试学习 XMLHttpRequests。我正在尝试向服务器发送一些输入,但是当它到达那里时,对象是空的,例如 {} 我注释掉的那个 setRequestHeader,如果它在,对象会被正确打印出来,但是我得到一个错误,它应该在浏览器上打开。但是如果我把它放在 open() 语句之后,它会再次停止工作并且对象是空的。我也尝试过所有这些以及 JSON.stringfy 在发送变量之前,但它也没有工作。
//server.js
const express = require('express');
const app = express();
const cors =require('cors')
app.use(cors())
app.use(express.urlencoded({extended:true}))
app.post('/frases', function(req, res) {
console.log(req.body);
const frase = new phrase(req.body);
// console.log(frase);
})
app.listen(3000, () => console.log('listening on 3000...'));
//script.js
var form = document.getElementsByTagName('form')[0];
const xhr = new XMLHttpRequest();
// xhr.setRequestHeader('Content-Type', 'application/json');
form.onsubmit = (e) => {
e.preventDefault();
const thisName = form.elements[0].name;
const thisValue = form.elements[0].value;
const frase = {[thisName]:thisValue};
console.log(frase)
xhr.open('POST', 'http://localhost:3000/frases');
xhr.send(frase);
};
<!-- index.html -->
<form action = "http://localhost:3000/frases" method="post">
<label for="frasefavorita"> Qual é a sua frase favorita?
<input id= 'frase' type="text" name="frasefavorita">
<button id= 'send-frase' type="submit">Enviar</button>
</form>
【问题讨论】:
标签: javascript json express post xmlhttprequest