javascript - 带有发布数据的请求后,PHP 中的 $_POST 数组为空

标签 javascript php post xmlhttprequest

我正在使用此方法将参数发送到我的服务器 php,但我得到了您发布的发货值:

function post(path, parameters) {
var http = new XMLHttpRequest();
console.log(parameters);
http.open("POST", path, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.send(parameters);
}

PHP:

public function tracking_referidos(){
    $this->autoRender = false;
    $result = array();
    $result['post'] = $_POST;
    echo json_encode($result);
    exit;
}

结果:{"post":{"referrer":"","event":"eventrid","hash":"45hfkabdus"}}

最佳答案

您正在发送一个 JSON 字符串。 PHP 不会自动解码该数据并将其映射到 $_POST super 全局。如果您希望 PHP 这样做,您需要将数据作为 application/x-www-form-urlencoded 发送(即类似于 get 请求的 URI:key=value&key2=value2 )。

您可以使用 application/json 内容类型发送数据,但要获取请求数据,您需要阅读原始帖子正文。您可以在 php://input 流中找到它。只需使用 file_get_contents 读取它:

$rawPostBody = file_get_contents('php://input');
$postData = json_decode($rawPostBody, true);//$postData is now an array

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

相关文章:

javascript - Node.js https.post 请求

javascript - C - 使用 libcurl 的 http post 请求

javascript - 是否可以将文档加载到内存中?

php - 从本地网络中的PC访问Wamp 3.1

php - 防止恶意外部脚本

php - 如何从 CLI 标准输入中读取非 ASCII 字符

google-app-engine - 部署在 Google App Engine 上的测试服务器

javascript - 如何为函数值创建 React Context 而无需一直重新渲染

javascript - 在我的 ASP.NET Webforms 应用程序中实现 Slider Revolution

javascript - 无法聚焦 Web 元素以发送 key