gpt4 book ai didi

Javascript XMLHttpRequest() 不发布数据

转载 作者:行者123 更新时间:2023-12-03 02:11:14 25 4
gpt4 key购买 nike

我的 javascript 位于 checkTests.php ,这是一个如下的函数

        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然后返回array(data)来自uploadTests.php控制台中的页面。

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

uploadTests.php的内容是:

<?php

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

?>

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

最佳答案

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

编辑:

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

关于Javascript XMLHttpRequest() 不发布数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49560216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com