带有JSON参数的POST请求抛出未捕获的(承诺中的)语法错误

问题描述 投票:0回答:2

我正在使用Fetch向我的服务器发出发布请求,并且我试图将一些信息与之一起传递,如下所示。

var rating = document.getElementById("rating");
var ratingValue = rating.innerHTML;
fetch("/films",{
    method: "post",
    headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    },
    body: JSON.stringify({
        rating : ratingValue
    })
})

当我尝试在服务器中访问此信息时,出现错误:Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0服务器端代码为:

app.post("/films", function(req,res){
    var rating = req.body.rated;
    ...
})

及其在函数中的第一行给我的错误,是声明等级变量的那一行。

谢谢

javascript json express post fetch-api
2个回答
0
投票

您不是要说req.body.rating吗?


0
投票

您的var rating = document.getElementById("rating");是一个类似<div id='rating'>Some text</div>的html元素。我不知道rating元素或类型中的内容,所以这只是一个例子。稍后,在代码中,您将rating用作

中的键
 body: JSON.stringify({
        rating : ratingValue
 })

所以您尝试沿着以下方式创建键:值对

{ "<div id='rating'>Some Text</div>" : ratingValue }

看到错误是在位置0处显示

© www.soinside.com 2019 - 2024. All rights reserved.