Wordpress AJAX / PHP $_POST 对象始终为空

JVG*_*JVG 2 php ajax wordpress

这看起来更像是一个 PHP 问题,而不是 Wordpress 问题,但它是在运行 WP 的服务器上,所以我将其包括在内以防万一。

我有一个像这样的 JS 对象:

{
  "Name": "Test Names",
  "Company": "Test Company",
  "Email": "TestEmail@mail.com",
  "Phone": "234556",
  "FoundPlattarHow": "Internet",
  "Interest": "Building",
  "ReceiveUpdates": "1"
}
Run Code Online (Sandbox Code Playgroud)

目前我只有一个空白的 PHP 文件,位于/lib/contact.php

<?php 
    echo "HELLO" . $_POST['Email'];
    prettyPrint($_POST);        

    function prettyPrint($a) {
        echo "\n";
        print_r($a);
        echo "\n";
    }

?>
Run Code Online (Sandbox Code Playgroud)

我正在使用 POSTMAN(当我从浏览器中执行实际的 AJAX 请求时,结果是相同的),并将上面的 JS 作为application/JSONPOST 请求发送到脚本。

我得到的输出是:

HELLO
Array
(
)
Run Code Online (Sandbox Code Playgroud)

所以看起来我的数据实际上根本没有通过。我在这里做错了什么?

Abh*_*eet 5

您将在带有“Content-type: application/json”标头的请求正文中发送数据。在这种情况下你应该使用下面的方法,

$data = file_get_contents("php://input");
$json = json_decode($data, true);
var_dump($json);
Run Code Online (Sandbox Code Playgroud)