如何将数据发布到api

时间:2018-05-24 18:44:15

标签: javascript json api

我正试图通过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"
}
]

1 个答案:

答案 0 :(得分:0)

代码将Content-Type设置为URL编码,但正文是JSON字符串。尝试将Content-Type更新为application/json。请参阅前一个问题。 What is the correct JSON content type?