我在服务器端使用express
,并且正在使用fetch
从客户端向服务器发出发布请求。
我发送到服务器的数据正在发送并显示。服务器响应中的数据无法在客户端的任何位置看到。
这是我在服务器端的代码:
app.post('/info',
ensureAuthenticated, function(req,res){
console.log(req.body)
var tryFetch = {myString: 'I am working fetch'};
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify(tryFetch));
})
客户端如下:
fetch("/info", {
method: "post",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name : e.target.parentElement.username,
socketID : e.target.parentElement.socketID,
id : e.target.parentElement.id,
})
})
.then( (response) => {
console.log(response)
});
[i console.log()
响应时,控制台显示:
Response {type: "basic", url: "http://localhost:4000/info", redirected: false, status: 200, ok: true, …}
type: "basic"
url: "http://localhost:4000/info"
redirected: false
status: 200
ok: truestatusText: "OK"
headers: Headers
__proto__: Headersbody: (...)
bodyUsed: false
__proto__: Response
我不知道我在这里缺少什么,并且无法将数据从服务器发送到客户端。有人可以帮我吗?将不胜感激。谢谢您的时间
您应该选择res.send
或res.json
而不是res.end
。
res.end()
用于在没有任何数据的情况下快速结束响应。
app.post('/info',
enter code hereensureAuthenticated, function(req,res){
console.log(req.body)
var tryFetch = {myString: 'I am working fetch'};
res.setHeader('Content-Type', 'application/json');
res.send(JSON.stringify(tryFetch));
})