gpt4 book ai didi

php - 为什么在带有发布数据的请求后 $_POST 数组在 PHP 中为空

转载 作者:行者123 更新时间:2023-11-29 17:31:09 27 4
gpt4 key购买 nike

我向带有发布数据的页面 getremote.php 发出发布请求,但 $_POST 数组似乎为空。如果有人能告诉我我做错了什么,将不胜感激。

发出请求的javascript代码是

var postdata = "Content-Type: application/x-www-form-urlencoded\n\nedits=" + this.createEditXMLtext(this.editXMLstruct);
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
dispmes("processing edits");
xmlhttp.open("POST",userProfile.homeurl + "?remoteurl=" + userProfile.homeurl + "&cmdeditprofile&password=password",false);

xmlhttp.send(postdata);

var response = xmlhttp.responseXML;

this.createEditXMLtext(this.editXMLstruct) 只是创建一个字符串

我以前没有遇到过这个问题,而且似乎没有与发布过类似问题的其他人相同的解决方案。userProfile.homeurl + "处的 php 代码是

header("Content-type: text/xml");
$query = '';
foreach( $_POST as $key => $value ){
$query .= "$key=$value&";
}
echo do_post_request($_GET['remoteurl'] . $qstring,$query);

但字符串 $query 始终为空 - 我通过将 echo $query 添加到文件底部来检查它

最佳答案

您传递给 send() 的值应该是整个帖子正文,并且您在其中包含了一个标题。当该主体到达 PHP 时,它将无法将其解析为编码的表单数据。

相反,通过调用 setRequestHeader() 设置数据类型

 //create the postdata, taking care over the encoding
var postdata = "edits=" + encodeURI(this.createEditXMLtext(this.editXMLstruct));

//let server know the encoding we used for the request body
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

//and here we go
xmlhttp.send(postdata);

关于php - 为什么在带有发布数据的请求后 $_POST 数组在 PHP 中为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4003711/

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