对 RESTapi 的 PUT 调用给出错误"SyntaxError: Unexpected token B in JSON at position 0"



我正在使用React、Typescript和自制的RESTapi。

我正试图从React中的客户端向我的api发出PUT请求,但我一直收到错误";SyntaxError:JSON中位于"0"位置的意外标记B;。对api的PUT调用不包含主体,也不应该包含主体,因为我在api中创建请求的方式。我已经确认fetch中的url是正确的,并且API调用在我的API中直接测试时工作得非常好。因此,问题似乎与我在客户端中进行PUT调用的方式有关

下面是我的客户打来的PUT电话。

提前感谢!

function putProductInBasket(id: number){

fetch("http://localhost:3005/velocishop/customers/" + localStorage.uuid + "/baskets/" + localStorage.uuid + "/products/" +  id, { 
method: "PUT",
headers: {
Accept: "application/json",
"Content-Type": "application/json"
},
})
.then(response => {
if (response.ok)
return Promise.resolve ({ status:response.statusText}) 
else
return Promise.reject ({ status:response.statusText})
}
)
.catch(err => console.log(err))
}

您需要首先使用res.json()将fetch中的响应转换为json像这样的

fetch('/data.json')
.then(response => response.json()) // Add this .then block before your first .then block
.then(data => {
console.log(data)
})
.catch(err => ...)

如果设置了Content-Type: application/json主体,则不发送主体是无效的,因为期望的是实际发送JSON。

删除此标头可能会解决您的问题。

相关内容

最新更新