Why PHP couldn#39;t get $_POST data from Js FormData fetch?(为什么PHP不能从Js FormData Fetch获取$_POST数据?)
本文介绍了为什么PHP不能从Js FormData Fetch获取$_POST数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我希望将JSON数据(在本例中是客户端时间戳)发送到我的服务器。然而,我的代码似乎没有像我预期的那样工作。我的想法是使用FETCH将FormData(其中包含一个值为JSON的输入)发送到PHP。在服务器端,PHP会处理$_POST
的表单,并将JSON字符串返回给我。
我使用的是一个免费的主机服务,安装了PHP7.0,用来测试东西。
下面的所有代码都在同一个文件(404.php)中:
var now = new Date();
var pkg = JSON.stringify({
ts: now.getTime(),
tz: now.getTimezoneOffset() / -60
})
var form = new FormData();
form.set('json', pkg);
console.log(form.has('json')) // true
console.log(form.values().next()) // return and obj contain JSON string
fetch('/404.php', {
method: 'POST',
body: form
});
$json = null;
if(isset($_POST['json'])) $json = json_decode($_POST['json']);
var_dump($_POST); //Result: array(0) { }
如您所见,var_ump的输出是一个空数组。但我希望看到的是带有JSON字符串的输出。
我试过另一种方法,就是这个fetch-api-json-php,但也没有用。我在网上找到的所有资源通常都是关于经典的AJAX,而不是FETCH API。而且大部分都是针对客户端的,对于PHP/服务器端,我找不到太多。
推荐答案
是否可以尝试在本地计算机上运行此代码?
创建名为55788817.php的文件并粘贴此代码并运行。
<?php
if (isset($_POST) && !empty($_POST)) {
$json = null;
if(isset($_POST['json'])) $json = json_decode($_POST['json']);
var_dump($_POST); //Result: array(1) { ["json"]=> string(29) "{"ts":1555915560755,"tz":5.5}" }
exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<button type="button" id="registerButton">Click Me!</button>
<script>
var now = new Date();
var pkg = JSON.stringify({
ts: now.getTime(),
tz: now.getTimezoneOffset() / -60
})
var form = new FormData();
form.append('json', pkg);
console.log(form.has('json')) // true
console.log(form.values().next()) // return and obj contain JSON string
fetch('./55788817.php', {
method: 'POST',
body: form
});
</script>
</body>
</html>
这篇关于为什么PHP不能从Js FormData Fetch获取$_POST数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:为什么PHP不能从Js FormData Fetch获取$_POST数据?
基础教程推荐
猜你喜欢
- 在多维数组中查找最大值 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01