值未在 POST 请求中发送到 API (Postman + Strapi)
Values not being sent in POST request to API (Postman + Strapi)
我正在尝试 POST 通过 Postman 访问 Strapi。我的端点中有三个字段,分别是 boxname + boxlocation + boxnumber。前两个是字符串,最后一个是整数。但出于某种原因,我的值没有发布,它们都显示为空。
知道为什么吗?我最终使用 Postman 进行尝试,因为我的 Javascript 也不起作用:
async function pushToStrapi(token, boxname, boxlocation, ownerid) {
var xhr = new XMLHttpRequest();
var url = "http://localhost:1337/boxes";
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
var json = JSON.parse(xhr.responseText);
}
};
var data = JSON.stringify({"boxname": ""+boxname+"", "boxlocation": ""+boxlocation+"" }});
xhr.send(data);
}
你不能做这种请求。
您必须单击 "body",然后单击 select "raw" 格式,然后在格式下拉列表中选择 "JSON"。
然后用您的键值写入您的 JSON 对象。
您不能在查询参数中发送参数。
存在语法错误。变化:
var data = JSON.stringify({"boxname": ""+boxname+"", "boxlocation": ""+boxlocation+"" }});
收件人:
var data = JSON.stringify({"boxname": ""+boxname+"", "boxlocation": ""+boxlocation+"" });
如果您更喜欢使用 shorthand,您可以这样做:
var data = JSON.stringify({boxname, boxlocation});
我也遇到过这个问题,我正在学习 Strapi,在我的例子中,我在 JSON 对象中发送 ID,该对象由 Strapi 管理,然后我删除了 ID(自动增量值) 并仅发送数据。在您的示例中,我看到您没有发送 ID 字段,但这一点可能对您或其他阅读者有所帮助。
这是我的要求:
{
"post_name": "raw postman post",
"post_description":"raw postman post",
"post_content": "raw postman post",
"post_category": 1 }
这是有效的回应:
{
"id": 9,
"post_name": "raw postman post",
"post_description": "raw postman post",
"post_content": "raw postman post",
"post_category": {
"id": 1,
"category_name": "Climate",
"category_desc": "Climate",
"published_at": "2020-10-16T11:37:11.931Z",
"created_at": "2020-10-16T11:35:01.418Z",
"updated_at": "2020-10-16T11:37:11.950Z"
},
"published_at": "2020-10-22T11:35:59.714Z",
"created_at": "2020-10-22T11:35:59.722Z",
"updated_at": "2020-10-22T11:35:59.731Z"}
我正在尝试 POST 通过 Postman 访问 Strapi。我的端点中有三个字段,分别是 boxname + boxlocation + boxnumber。前两个是字符串,最后一个是整数。但出于某种原因,我的值没有发布,它们都显示为空。
知道为什么吗?我最终使用 Postman 进行尝试,因为我的 Javascript 也不起作用:
async function pushToStrapi(token, boxname, boxlocation, ownerid) {
var xhr = new XMLHttpRequest();
var url = "http://localhost:1337/boxes";
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
var json = JSON.parse(xhr.responseText);
}
};
var data = JSON.stringify({"boxname": ""+boxname+"", "boxlocation": ""+boxlocation+"" }});
xhr.send(data);
}
你不能做这种请求。
您必须单击 "body",然后单击 select "raw" 格式,然后在格式下拉列表中选择 "JSON"。
然后用您的键值写入您的 JSON 对象。
您不能在查询参数中发送参数。
存在语法错误。变化:
var data = JSON.stringify({"boxname": ""+boxname+"", "boxlocation": ""+boxlocation+"" }});
收件人:
var data = JSON.stringify({"boxname": ""+boxname+"", "boxlocation": ""+boxlocation+"" });
如果您更喜欢使用 shorthand,您可以这样做:
var data = JSON.stringify({boxname, boxlocation});
我也遇到过这个问题,我正在学习 Strapi,在我的例子中,我在 JSON 对象中发送 ID,该对象由 Strapi 管理,然后我删除了 ID(自动增量值) 并仅发送数据。在您的示例中,我看到您没有发送 ID 字段,但这一点可能对您或其他阅读者有所帮助。
这是我的要求:
{
"post_name": "raw postman post",
"post_description":"raw postman post",
"post_content": "raw postman post",
"post_category": 1 }
这是有效的回应:
{
"id": 9,
"post_name": "raw postman post",
"post_description": "raw postman post",
"post_content": "raw postman post",
"post_category": {
"id": 1,
"category_name": "Climate",
"category_desc": "Climate",
"published_at": "2020-10-16T11:37:11.931Z",
"created_at": "2020-10-16T11:35:01.418Z",
"updated_at": "2020-10-16T11:37:11.950Z"
},
"published_at": "2020-10-22T11:35:59.714Z",
"created_at": "2020-10-22T11:35:59.722Z",
"updated_at": "2020-10-22T11:35:59.731Z"}