【问题标题】:Fetch doesn't send post data [duplicate]Fetch不发送帖子数据[重复]
【发布时间】:2019-08-10 13:15:17
【问题描述】:

我遇到了这个问题,由于某种原因,我无法通过fetch API 使用 POST 将数据发送到另一个 PHP 脚本。

我已经检查了其他解决方案并清理了我的代码,但它仍然无法正常工作。

也许我错过了什么。

这是我的代码:

function request(where, num, last, query){
	for (var i = num; i > 0; i--) {
		fetch("global/modul.php", {
			method: "POST",
			body: JSON.stringify({
				last: last,
				query: query
			}),
			headers:{
				'Content-Type': 'application/json'
			}
		}).then(function (response) {
			return response.text();
		}).then(function (data) {
			let html = data.trim();
			document.getElementById(where).innerHTML += html.trim();
		}).catch(function (error) {
			console.log('Request failed', error);
		});

		last = document.getElementById(where).lastChild.id;
	}
}
    var_dump($_POST);

打印:

数组(0) { }

我也测试了Parse Javascript fetch in PHP中显示的解决方案,但并没有解决问题。我仍然没有在我的 php 脚本中获得 POST 数据。

【问题讨论】:

  • 你能看到开发者控制台的网络标签中实际发送了什么吗?
  • @solarc 是,最后一个空查询顶部

标签: javascript php fetch


【解决方案1】:

您的 JS 代码没有问题。但是,您需要通过阅读php://input 来查找 PHP 代码中另一个变量中的数据,如下所示:

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

来源:https://stackoverflow.com/a/39508364/2831645

【讨论】:

  • 这是因为……?它只是一个普通的 POST,不是吗?
  • @putvande 这是一个真正的问题,还是您在暗示 Thibpat 改进他们的答案? :-)
  • 正版问题。我不明白为什么var_dump($_POST) 不起作用。
  • @putvande 因为php只自动解码application/x-www-form-urlencoded
猜你喜欢
  • 2014-05-01
  • 1970-01-01
  • 2019-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 2021-02-23
  • 1970-01-01
相关资源
最近更新 更多