【问题标题】:fetch does not send post datafetch 不发送 post 数据
【发布时间】:2020-10-30 10:56:39
【问题描述】:

我有以下js sn-p:

    fetch('/some/webhook', {
        method: 'post',
        headers: { 'content-type': 'application/json' },
        body: JSON.stringify({test:'1'})
    }).then(function(res) {
        // do something here
    }).then(function(data) {
        // do something else here
    });

几个小时以来,我一直在尝试将正文发送到我的服务器,但监听脚本在 $_POST 变量中什么也看不到。 webhook 接收请求。一个简单的:

die (var_dump($_POST));

导致控制台中显示一个空数组,我希望在该数组中看到值为 1 的变量 test

怎么了?

【问题讨论】:

  • 我强烈建议您在帖子中添加后端语言的标签。是 PHP 吗?
  • 可能是因为 CORS。你能打开浏览器控制台并在客户端检查错误吗?
  • @Aykhan:不,没有问题。

标签: javascript php fetch


【解决方案1】:

您发送数据的方式,php 不会填充 de _POST 变量

如果你想发送json 内容,你应该这样做

$data = json_decode(file_get_contents('php://input'), true);

echo $data["test"];

替代解决方案,如果您希望将数据放在_POST 中,您应该发送multipart/form-data 标头并使用new FormData(); 作为fetch 的正文。

【讨论】:

  • 你几乎是对的,但它应该是“输入”而不是“标准输入”。现在像魅力一样工作。
  • @Armin Hierstter :确实,我搞错了,感谢编辑
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-18
  • 1970-01-01
  • 2013-08-24
  • 2021-12-27
  • 2020-02-01
  • 2019-06-23
  • 2012-02-05
相关资源
最近更新 更多