无法使用 XMLHttpRequest 将文本常量传递给 PHP

问题描述 投票:0回答:1

我试图通过 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 调用,但只有这部分不起作用。所以我只包含已确定的问题。

php xmlhttprequest
1个回答
0
投票

因为您没有正确报告您的

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。

© www.soinside.com 2019 - 2024. All rights reserved.