我正在尝试通过 AJAX 调用发送 POST 变量,但 php 脚本似乎没有接收到它。这是我的 html 文件
<!doctype html>
<html>
<head>
<title>Testing</title>
</head>
<body>
<h1 id="test">Testing</h1>
<input type="text" id="search" placeholder="search"/>
<div id="target">
</div>
<script type="text/javascript">
function ajax_call(){
var hr=new XMLHttpRequest();
var target=document.getElementById("target");
hr.open("POST", "phptest.php", true);
hr.setRequestHeader("Content-Type"," application/x-www-form-urlencoded");
hr.onreadystatechange=function(){
if(hr.readyState==4 && hr.status==200){
var data=(hr.responseText);
target.innerHTML="";
target.innerHTML+=data;
}
}
hr.send("test="+document.getElementById("test").innerHTML);
}
ajax_call();
</script>
<!-- <script type="text/javascript" src="Scripts/friends2.js"></script> -->
</body>
</html>
这是 PHP 文件:-
<?php
header("Content-Type: application/json");
//$search=$_POST['search'];
/*if(empty($_POST)){
echo "not set";
}*/
echo $_POST['test'];
?>
我删除了 JSON 解析,当我取消注释 if(empty..) 行时,我看到“未设置”
最佳答案
好像没有什么问题
关于 setRequestHeader(需要 2 个参数,但在您的示例代码中只给出了一个)
hr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
您的 php 代码需要返回 json 格式,例如
echo '{"message":"'.$_POST['test'].'"}';
您的页面需要从已解析的 json 中获取值(请注意 php 代码中的“消息”)
target.innerHTML+=data.message;
关于php - post 变量未传递给 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31240600/