【问题标题】:Javascript XMLHttpRequest() is not posting data [duplicate]Javascript XMLHttpRequest()未发布数据[重复]
【发布时间】:2018-09-08 15:45:09
【问题描述】:

我在checkTests.php 上有我的javascript,它的功能如下

        function confirmedUpload(){
            //Make the button so it can't be clicked again
            document.getElementById('confirmUpload').setAttribute("disabled", true);

            //This is the data we are posting
            var postData = JSON.stringify(<?php echo $uploadJSON; ?>);

            //This bit works OK and I see the string of JSON printed in the console.
            console.log(postData);

            //Create an XMLHttpRequestObject
            var xhr = new XMLHttpRequest();
            xhr.open("POST", "/uploadTests.php", true);

            xhr.setRequestHeader( "Content-Type", "application/json" );
            xhr.send(postData);

            //Wait for the page to respond.
            xhr.onreadystatechange = function()
            {
                if(xhr.readyState == 4 && xhr.status == 200)
                {
                    console.log(this.responseText);
                }
            }
        }

我希望将数据postData 发布到页面uploadTests.php,然后从控制台中的uploadTests.php 页面返回array(data)

但实际发生的是发布请求,我看到了来自 javascript 的输出 console.log(postData);,但是当 uploadTests.php 返回值时,我得到的只是 array() 0 并且没有数据。

uploadTests.php的内容是:

<?php

    print_r($_POST);
    echo '   ' . sizeof($_POST);

?>

为什么uploadTests.php 认为 $_POST 是空白的?

【问题讨论】:

  • $uploadJSON 中有什么?您可能更愿意先尝试发送硬编码字符串。

标签: javascript


【解决方案1】:

我相信您需要将您的Content Type 设置为application/x-www-form-urlencoded 以便PHP 读取$_POST 超全局数组。否则,内容将出现在 PHP 标准输入正文中,可通过php://input 检索。详情请见here

编辑:

如果您无法更改内容类型,则需要从 php://input 流中读取数据,该流将检索请求的内容主体。

【讨论】:

  • “我相信你需要将你的内容类型设置为 application/x-www-form-urlencoded”——如果你的内容不是 application/x-www-form-urlencoded 那就不好了!
  • 很遗憾地通知您,更改内容类型并没有影响:/
  • @Quentin 那么OP需要从标准输入流中读取php://input...
  • @HarveyFletcher 查看更新的edit
猜你喜欢
  • 2013-10-23
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 2021-02-08
  • 2018-07-28
  • 1970-01-01
  • 2013-02-04
相关资源
最近更新 更多