我正试图通过fetch将数据发布到我的api。帖子正在工作,我的api正在接收它,但数据没有传递,所有内容都返回为null。我错过了什么,有什么我可以通过我目前的尝试方式来改进吗?
HTML:
<form id="reportForm">
<input class="name" id="name" type="text">
<input class="phone" id="phone" type="tel">
<input class="email" id="email" type="email">
</form>
使用Javascript:
document.getElementById('reportForm').addEventListener('submit', postData);
function postData(event){
event.preventDefault();
let name = document.getElementById('name').value;
let phone = document.getElementById('phone').value;
let email = document.getElementById('email').value;
let reqBody = {
name: name,
phone: phone,
email: email
};
console.log("working");
fetch('http://localhost:8888/api/report', {
method: "POST",
headers: {'Content-Type':'application/x-www-form-urlencoded'},
body: JSON.stringify(reqBody)
}).then((res) => res.json())
.then((data) => console.log(data))
.catch((err)=>console.log(err))
}
发布数据后的API。
"data": [
{
"report_id": 1,
"user_id": null,
"name": "null",
"phone": "null",
"email": "null"
}
]
答案 0 :(得分:0)
代码将Content-Type
设置为URL编码,但正文是JSON字符串。尝试将Content-Type
更新为application/json
。请参阅前一个问题。 What is the correct JSON content type?