我不知道为什么不管用。它返回空的$_POST
。
联署材料:
const updateRequest = new FormData();
updateRequest.append('updateRequest', 'next-period');
fetch('file.php', {
method: 'POST',
data: updateRequest
})
.then((response) => response.text())
.then((text) => {
console.log(text);
})
PHP:
<?php
if($_SERVER['REQUEST_METHOD'] === 'POST') {
var_dump(empty($_POST));
}
在PHP文件中,服务器请求是POST,但var_dump记录为true。
发布于 2018-12-14 11:48:22
根据文档,如果您想将数据发送到请求体中的服务器(就像发布一样),则将其放入body
选项中。没有可用的data
选项。如果您将它提供给Fetch方法,那么它并不期望它,而只是忽略它。也许您已经将其与jQuery $.ajax()的语法(它确实有data
选项)或其他什么东西混淆了?
你需要写:
fetch('file.php', {
method: 'POST',
body: updateRequest //"body" instead of "data"
})
演示(运行小提琴查看网络选项卡以查看正文中包含的数据):http://jsfiddle.net/2vx0rp3q/
发布于 2018-12-14 11:49:05
身体中的变化数据
var form = new FormData(document.getElementById('login-form'));
fetch("/login", {
method: "POST",
body: form
});
如这里所定义的,获取
https://stackoverflow.com/questions/53779058
复制相似问题