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);