在heroku上部署strapi的POST请求中获取空值

qnyhuwrf  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(137)

我正在做一个小的网络议程,用户可以写家庭作业和阅读每天写的东西。这个网络是用HTML,CSS和Vanilla JS写的。我有Strapi作为后端,我已经用它的文档把它部署到Heroku上:https://docs.strapi.io/developer-docs/latest/setup-deployment-guides/deployment/hosting-guides/heroku.html#_6-install-the-pg-node-module
我对GET请求没有问题,但是当我尝试发出POST请求时,我的内容类型的属性值为空。这是我的代码(它基于https://docs.strapi.io/developer-docs/latest/developer-resources/database-apis-reference/rest-api.html#create-an-entry):

function registerHomework(){
    var s = document.getElementById("subject").value
    var h = document.getElementById("homework").value
    var t = new Date().toISOString().slice(0, 10)

    fetch('https://agenda-back.herokuapp.com/api/homeworks', {
        method: 'POST',
        headers: {
            'Accept': 'application/json',
            "Content-type": "application/json; charset=UTF-8"
        },
        body: JSON.stringify({
            "data": {
                "id": i,
                "attributes": {subject: `${s}`, homework: `${h}`, date: `${t}`}
            }
             
        })
    })
}

我得到的回答是:

data: {
    id: 8,
    subject: 'null',
    homework: 'null',
    date: 'null',
    created_at: '2022-11-16T12:12:57.078Z',
    updated_at: '2022-11-16T12:12:57.078Z'
  }

我不知道为什么它不注册属性,我想它可能与权限有关,但是我已经在strapi中更改了content-type public角色:现在任何人都可以创建一个条目了。我仍然得到相同的null值。
我还发现了这个:https://github.com/strapi/strapi/issues/5958,但我没有使用axios。我不知道是否可以直接从前端发出POST请求(我从strapi文档中了解到是这样),但可能我没有正确理解它。可能是一些授权问题,即使我选择了公共用户可以创建条目?
希望有人能帮帮我!

qqrboqgw

qqrboqgw1#

从您链接的单据中可以看到,不允许使用属性键发送数据,可以直接发送数据。

{
  "data": {
    "subject": "Hello",
    "homework": "Test",
    "date": "2022-11-17",
  }
}

相关问题