我试图通过 POST xmlhttprequest 将 Javascript 变量传递给 PHP,但即使是文本文字也不起作用。
我检查了已回答的问题https://stackoverflow.com/questions/20494437/passing-a-javascript-variable-to-php-with-xmlhttprequest但它在我的情况下不起作用。下面是我的代码
HTML/脚本
<!DOCTYPE html> <html lang="en">
<button type="button" id="saveButton">Save Button</button>
<script> document.getElementById('saveButton').addEventListener('click', function() {
var inst_a = new XMLHttpRequest(); inst_a.open("POST", "check_name-indev02.php");
inst_a.send("inputname=dummy");
inst_a.onreadystatechange = function() {
if (inst_a.readyState == 4 && inst_a.status == 200)
{console.log(inst_a.responseText);}
}
});
PHP
<?php if (isset($_POST['inputname']))
{echo "set";} else {echo "not set";} ?>
我不确定我做错了什么。控制台总是返回“not set”,这意味着常量“dummy”从未到达 PHP。实际页面做了很多其他事情,包括 Jquery 调用,但只有这部分不起作用。所以我只包含已确定的问题。
因为您没有正确报告您的
POST
数据类型,所以 $_POST
未填写。
var inst_a = new XMLHttpRequest();
inst_a.open("POST", "check_name-indev02.php");
// Need this line
inst_a.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
inst_a.send("inputname=dummy");
设置 HTTP header
Content-Type: application/x-www-form-urlencoded
可以告诉 PHP 解析你的 POST
ed body。