当前位置: 首页 > 知识库问答 >
问题:

为什么即使我使用API Post请求[duplicate]发送数据,req body仍然是{}

松成和
2023-03-14

我正在创建自己的API(使用express)和react.js应用程序。但是,当我从react应用程序发送数据时,服务器不会检索数据。这是我的密码:

发布请求客户端:

async function sendRequest(text) {

    const url = "http://localhost:51515/initialize"
    const settings = {
        method: "POST",
        body: {
            text: text
        }
    }
        
    try {
        const response = await fetch(url, settings)
        return await response.json()
    } catch(err) {
        console.log(err)
    }
}

服务器端POST请求检索:

const express = require("express");
const app = express();
const PORT = 51515

app.use(express.json())

app.listen(
    PORT,
    () => console.log(`API initialized on http://localhost:${PORT}`)
)

app.post('/initialize', (req,res) => {
    console.log(req.body) // The log output is {}
})

你知道我怎么解决这个问题吗?

共有1个答案

罗鸿福
2023-03-14

您只需要将这些参数添加到您的设置对象中。

const settings = {
    method: "POST",
    body: JSON.stringify({
        text: text
    }),
    headers: { "Content-Type": "application/json" }
}
 类似资料:
  • 我正尝试在出现连接错误时添加一个控件。我的目的是通过捕捉异常来阻止程序抛出异常。 但它会在控制台中打印: 抱歉,如果我打印了太多的StackTrace... 我想知道,如果我不打印出stacktrace,我如何使异常消失?谢谢:)

  • 问题内容: 看来,当键的值为时,请求不包含该键。 为什么会这样呢?我期望有一个空字符串,或类似where呈现为的东西。我敢肯定有充分的理由- 只是好奇。(我能想到的一件事可能就是POST请求可能没有编码或不可用-是这样吗?) 另外感到好奇的是-为什么不理会这些数据而不是抛出错误? 问题答案: 将字典元素设置为就是您明确表示不希望将该参数发送到服务器的方式。 我在文档中找不到专门提到的内容,但是在“

  • 问题内容: 我正在开发流服务器和Flash客户端之间的Java接口。我注意到即使两个进程都在本地运行,UDP数据报也可能无法按顺序到达我的接口。 那是正常的吗?我以为,由于数据报不必通过任何路由器或任何网络设备,因此这应该不会发生。 问题答案: 实际上,即使UDP数据包是由本地主机上的本地主机发送的,也无法保证其顺序和接收。仅仅因为协议的规范并不意味着它的任何含义。 由于无法对它们进行假设,因此应

  • 我的前端代码: 和我的Express.js服务器代码: 如您所见,Express服务器在端口8000上运行,React开发服务器在端口3000上运行。正在请求,并且正在通过使用POST方法请求另一个源。但是,只有第二个请求工作得很好。我不知道怎么会这样。当然,如果我用querystring发出GET请求,事情就正常了。但我也想知道如何用请求正文进行POST获取。

  • 在默认情况下,我希望angular发出请求。不是JSON。 角度1.4.5 如何将整个应用程序配置为使用x-www-form-urlencoded而不使用自行车作为拦截器等。

  • 最近,我将JWT身份验证引入了我的基于Springboot和Angualr2的应用程序。在那里,我试图通过在Angualr代码中传递如下所示的JWT令牌来执行POST请求 但是,在服务器端,它返回状态代码401。问题在Springboot端,它检查授权头,如下所示,并返回null 然后,我查看了请求头,它在Access-Control-Request-Headers下有授权头,如下所示。但服务器端