为啥PHP收不到AJAX发出的post请求
Posted
技术标签:
【中文标题】为啥PHP收不到AJAX发出的post请求【英文标题】:Why does PHP does not receive the post request that made by AJAX为什么PHP收不到AJAX发出的post请求 【发布时间】:2020-10-19 09:54:41 【问题描述】:这是我的 javascript 代码,成功事件被执行。但是 php 文件中的 post 数组仍然为空。
document.querySelector(".postButtons").addEventListener("click",(e)=>
const postID = e.target.value;
if(e.target.id == "edit")
//Send post request to edit the post
$.ajax(
type: 'POST',
url: '../edit.php',
data: postID : postID,
contentType: 'application/json; charset=utf-8',
data: 'json',
cache: false,
success: function(response)
window.location.href="../edit.php"
,
error: function(err)
console.log(err)
)
else if(e.target.id == "del")
//Send post request to delete the post
)
<?php
if(isset($_POST["postID"]))
echo $_POST["postID"];
?>
我试图用javascript将变量记录到控制台,它似乎工作。当我试图返回它时,状态码是200。
【问题讨论】:
这能回答你的问题吗? Submitting JSON data via JQuery ajax.post to PHP 【参考方案1】:window.location.href 执行常规 GET 请求。因此,您在页面上看不到 postID。您可以在请求中的控制台中看到 postID
但是如果你想在页面重新加载时看到 postID,那么你需要使用表单发送这个请求,而不是 ajax。
<form action="../edit.php" method="POST" id="sendForm">
<input type="hidden" name="postID" id="postID">
<input type="submit">
</form>
if(e.target.id == "edit")
$('#postID').val(postID);
$('#sendForm').submit();
【讨论】:
以上是关于为啥PHP收不到AJAX发出的post请求的主要内容,如果未能解决你的问题,请参考以下文章
发出 Ajax POST 请求时出现“parseerror”
form表单,“post”方式,提交onclick=submit() 为啥服务器不执行?