對不起,如果這已經被問過很多次了,但我無法讓它工作。我正在嘗試建立一個寧靜的網站,我有一個簡單的表格:<form action="/my/path" method="post" id="myformid">Name <input type="text" name="name"><input type="submit" value="Test"></form>我使用 Javascript 轉換用戶輸入的數據,然后使用 Ajax 將它們發送到我的 php 文件:function postData() { $('#myformid').on('submit', function(event) { event.preventDefault(); const json = JSON.stringify($("#myformid").serializeArray()); $.ajax({ type: "POST", url: "/my/path", data: json, success: function(){}, dataType: "json", contentType : "application/json" }); });}我嘗試讀取 php 上的數據,例如:$data = json_decode(file_get_contents('php://input'), true);$name = $data["name"];如果我使用 Postman 之類的工具在請求正文中發送 JSON,則代碼可以完美運行,但是從我使用 Ajax 測試的結果來看,json 數據作為 POST 數據到達,我可以使用 $_POST["name"] 讀取它,但不是像我一樣使用'php://input'。我該如何修復它以便即使通過 Javascript 發送 JSON 也能被接受?
3 回答

慕運維8079593
TA貢獻1876條經驗 獲得超5個贊
更改您的 ajax 代碼
$('#btnSubmit').on('click', function(event) {
event.preventDefault();
$.ajax({
type: "POST",
url: "/new.php",
data: $("#myformid").serialize(),
dataType: "json",
success: function(response) {
console.log(response);
}
});
});
您還需要在形式上進行一些更改
<form action="new.php" method="post" id="myformid">
Name <input type="text" name="name">
<input id="btnSubmit" type="button" value="Test">
您可以在 php 文件中獲取 POST 數據,例如 $_POST['name']
- 3 回答
- 0 關注
- 269 瀏覽
添加回答
舉報
0/150
提交
取消