提问人:Vasile Midrigan 提问时间:10/5/2023 最后编辑:PhilVasile Midrigan 更新时间:10/5/2023 访问量:54
发送 POST 请求时出现 422 错误
Getting 422 ERROR when sending a POST request
问:
这是我使用的代码:
const url = new URL("https://api.chec.io/v1/products");
const headers = {
"X-Authorization": `${process.env.NEXT_PUBLIC_CHEC_PUBLIC_KEY_SECRET}`,
"Accept": "application/json",
"Content-Type": "application/json",
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify({
name: 'Samsung',
price: '345',
}),
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((err) => console.log(err));
我正在尝试发送 POST 请求,以使用 Commercejs API 为电子商务项目创建产品。但是,我得到的结果是 422 错误,通过一些研究可以看出:
* 错误 422 是一个 HTTP 代码,它告诉您服务器无法处理您的请求,尽管它理解它。错误代码的全称是 422“不可处理的实体”。简而言之,该错误意味着您正在发出服务器理解的请求,但它无法处理它。
还有另一个帖子似乎在我的情况下不起作用:400 与 422 对数据发布的回应
以下是有关创建产品的文档(这是我尝试做的): https://commercejs.com/docs/api/#create-product
答:
0赞
Vasile Midrigan
10/5/2023
#1
问题在于我发送的数据的格式。我应该以这种格式发送它(问题正文),我想我很困惑地认为正文的大括号实际上意味着一个对象,我想现在这实际上不是正确的,大括号包裹了您发送到服务器的数据,所以就我而言,我没有发送文档所需的对象产品 {}, 但相反,我发送的是名称:“三星”和价格:345,这是服务器无法接受的。无论如何,感谢您的建议。下次最好注意服务器的期望以及我们实际发送的内容,以防我们收到 422 错误。
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify({
product: {
name: 'Iphone',
price: 4535,
}
}),
})
评论
"X-Authorization"