Php 为什么即使在我手动分配它进行测试时,它仍返回不明状态?

Php 为什么即使在我手动分配它进行测试时,它仍返回不明状态?,php,json,post,curl,http-post,Php,Json,Post,Curl,Http Post,这总是抛出一个错误,即这些参数都无效。例如:未定义索引:dataNL 接收代码: $ajax_arrayBTF = $_POST['dataBTF']; $ajax_arrayLI = $_POST['dataLI']; $ajax_arrayLS = $_POST['dataLS']; $ajax_arrayNL = $_POST['dataNL']; $agent_id = $_POST['agent']; 以下是我正在使用的调用代码: $data = array( "dataBT

这总是抛出一个错误,即这些参数都无效。例如:
未定义索引:dataNL

接收代码:

$ajax_arrayBTF = $_POST['dataBTF'];
$ajax_arrayLI = $_POST['dataLI'];
$ajax_arrayLS = $_POST['dataLS'];
$ajax_arrayNL = $_POST['dataNL'];
$agent_id = $_POST['agent'];
以下是我正在使用的调用代码:

$data = array(
    "dataBTF" => "0",
    "dataNL" => "0",
    "dataLS" => "0",
    "dataLI" =>  "0",
    "agent" => "53" 
);

$data_string = json_encode($data);                                                                                   
echo  $data_string;
$ch = curl_init('http://localhost/site1/backend/scripts/oppCAL.php');                                                                      
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                                                                  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);    
curl_setopt($ch, CURLOPT_HTTPHEADERS, array('Content-Type: application/json'));                                                                  
echo curl_exec($ch);
我不明白为什么会发生这种情况,因为我正在手动分配它。所以它是有效的<代码>回显$data\u字符串显示

{"dataBTF":"0","dataNL":"0","dataLS":"0","dataLI":"0","agent":"53"}
就像它应该。。我决定使用JSON,但即使这样也不行。旋度已启用。我错过了什么

编辑:

当ajax调用时,没有问题。我的目标是:

$.ajax(
          {
            type: 'post',
            url: 'scripts/oppCAL.php',
            data: 
            {
              dataBTF:  $array_jsBTF,
              dataLI:   $array_jsLI,
              dataLS:   $array_jsLS,
              dataNL:   $array_jsNL,
              agent:    $agent_id
            },
            success: function(e) 
            {
              console.log("done:");

            } //success
          }); // ajax

PHP不解析JSON主体数据,只解析编码的表单,就像jQueryAjax调用发送的一样。它看起来像这样:

dataBTF=0&dataLI=0&dataLS=0&dataNL=0&agent=0
在接收JSON时,您可以使用如下方式获取数据:

$body = file_get_contents('php://input');
$data = json_decode($body, true);