javascript - 无法根据 ajax 请求在 php 中获取 $_POST 值

标签 javascript php html ajax

这是我的index.html

<script>
    var xml = new XMLHttpRequest();
    xml.onreadystatechange = function(){
        if (xml.readyState === 4 && xml.status === 200) {
            console.log(xml.responseText);
        }
    }
    xml.open("POST", "ajax.php", true);
    var data = new FormData();
    data.append("name","Sahan");
    xml.send(data);
</script>

这是我的 ajax.php

<?php
echo "Hello " . $_POST["name"];
?>

当我在本地主机上运行时,结果是


Notice: Undefined index: name in C:\xampp\htdocs\chat\ajax.php on line 2
Hello

但是当我使用 JQuery 时它工作正常...

我的问题是如何在不使用 JQuery 的情况下使用 JavaScript 发送 ajax...?

最佳答案

当您使用 ajax 发送数据时,您必须将正确的 header 信息与请求一起传递

<script>
    var xml = new XMLHttpRequest();
    xml.onreadystatechange = function(){
        if (xml.readyState === 4 && xml.status === 200) {
            console.log(xml.responseText);
        }
    }
    xml.open("POST", "ajax.php", true);
    //Send the proper header information along with the request
    xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

    /*var data = new FormData();
    data.append("name","Stackoverflow");*/
    xml.send("name=Stackoverflow");
</script>

关于javascript - 无法根据 ajax 请求在 php 中获取 $_POST 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47831146/

相关文章:

php - 在 codeigniter 中的两个日期之间提取数据时出错

html - 如何在维护语义 HTML 标记的同时使用 Bootstrap?

javascript - jQuery/AJAX 数据未发布

javascript - CSS - <li> 可见性变化的 "slide-out"动画

javascript - 如何正确全局注册和使用Vue Range Date Picker组件?

php - 为什么一个简单的 PHP 包含文件容易受到攻击

php - 使用 NVP 的 Paypal 快速结帐上线 - "Security header is not valid"

html - 如何使用 Html 和 CSS 更改复选框 UI?

javascript - 如何使用 jQuery 选择树中的最后一个 child ?

javascript - 在 typescript (javascript)中向类方法添加方法