值未在 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"}