我试图将产品编号从客户端传递到服务器,以便将其保存到数据库中。我已经尝试了近100种不同的方式来打印出“ prod”变量,但是没有任何效果。
我的代码中已经包含正文解析器和其他内容。我做错了什么小事吗?如果是这样,我应该如何编辑客户端文件或服务器文件,以便能够将“产品”从客户端传递到服务器。
从现在开始,如果只说undefined
Client.js:
function addToCart(prod1) {
fetch( '/addToCart' , { method: ' POST ', body: ' prod= ' + prod1 });
}
server.js:
app.post("/addToCart", (req, res) => {
console.log(req.body.prod);
});
我希望在控制台时,无论在服务器文件文件中看到什么“ prod”,并将其注销到屏幕上
答案 0 :(得分:2)
添加application/json
作为标题的内容类型,并使用JSON.stringify({yourKey:yourData})
作为正文。
客户:
function addToCart(prod1) {
fetch( '/addToCart' , {
headers: { "Content-Type": "application/json" },
method: ' POST ',
body: JSON.stringify({prod : prod1 })
});
}
服务器:
app.post("/addToCart", (req, res) => {
console.log(req.body.prod);
});
答案 1 :(得分:1)
为什么不尝试发送json对象而不是字符串?
data = {
prod: prod1
}
function addToCart(data) {
fetch( '/addToCart' , { method: ' POST ', body: JSON.stringify(data) });
}
答案 2 :(得分:0)
我在这里看到的第一个问题是您没有偷拍客户请求的内容类型。 如果您使用
headers: { 'Content-Type': 'application/json' }
传递POST数据的正确方法是:
body: JSON.stringify({prod: prod1})