javascript - Fetch API 发送空的 post 数组
问题描述
我想使用方法将从html
表单获取的所有数据发送到php
脚本POST
。
我的 HTML:
<form id="details" class="form">
Full name: <strong name="name_1">ABCDEF</strong><br><br>
ID No:<strong name="org_number_1">23</strong><br><br>
Mobile No:<strong name="ph_number_1">1234567890</strong><br><br>
E-mail: <strong name="email_1">abc@def.com</strong><br><br>
ID Card: <img src="profile.jpg" alt="preview" name="image" style="width: 100px; height: 100px;"><br><br>
<button id="go" onclick="submit()"type="button" value="submit">Submit</button>
</form>
我的JavaScript:
function submit(){
var nme=document.getElementsByName("name_1")[0].innerHTML;
var id=document.getElementsByName("org_number_1")[0].innerHTML;
var phone=document.getElementsByName("ph_number_1")[0].innerHTML;
var email=document.getElementsByName("email_1")[0].innerHTML;
var img=document.getElementsByName("image")[0].src;
const dForm = document.getElementById('details');
dForm.addEventListener('submit', function(e) {
e.preventDefault();
const formData=new FormData();
formData.append('name', nme);
formData.append('email', email);
formData.append('ID No', id);
formData.append('Contact no', phone);
formData.append('image', img);
fetch("database_registration.php",{
method: 'post',
body: formData,
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
}).then(function (response){
return response.text();
}).then(function (text){
console.log(text);
}).catch(function (error){
console.error(error);
})
});
}
我的PHP:
<?php
$post_data=file_get_contents("php://input");
var_dump($_POST); //shows array(0) { }
print_r($_POST);//shows Array()
$data=json_decode($post_data);
echo $data; //shows a completely blank page
?>
为什么我的$_POST
数组是空的?
解决方案
它实际上是原始的帖子数据。您无法使用该$_POST
变量接收数据。你必须使用
$payload = file_get_contents('php://input');
$data = json_decode($payload);
print_r($data);
注意:有时您必须无缘无故地重新启动服务器。:)
已经在这里回答了
推荐阅读
- sql - 找到那些状态和颜色相同的团队
- bash - git 用另一个远程备份一个远程存储库
- c# - 打开文件资源管理器以在 ASP.NET MVC 中导出我的水晶报表
- amazon-web-services - 如何在 Terraform 的动态块中使用 for_each 和迭代器?
- node.js - 我无法适当地重构代码
- angular - 我在 Angular 8 中使用 ngx toastr,如果有人知道解决方案告诉我,它会显示以下错误
- sequence-alignment - 使用 STAR 进行剪接和未剪接的序列比对
- javascript - webdriverio 等待页面加载
- python - 格式化并删除前导零 - Pandas
- node.js - 在 NodeJS 中使用相对路径并表达