2017-09-23 45 views
1

我正在使用邮递员将数据发布到非常小的php脚本。当我试图转储$ _POST时,它有一些数据,但当我试图访问$ _POST中的变量时,它给了我错误。

PHP脚本

<?php 
    header("Access-Control-Allow-Origin: *"); 
    var_dump($_POST); 
    $txt = $_POST['result']; 
?> 

在邮差原始输入

{"result":"sfd"} 

输出

array(1) { ["{"result":"sfd"} "]=> string(0) "" } 
Notice: Undefined index: result in C:\xampp\htdocs\apis\index.php on line 4 

请告诉我这里发生?

+0

好像你从邮递员发送错误的数据。 var_dump($ _ POST); - 像键值“”{“result”:“sfd”}“'的关联数组,值为空字符串。 – alek13

回答

-1

使用isset功能检查

<?php 
    header("Access-Control-Allow-Origin: *"); 
    if(isset($_POST['result'])){ 
     $txt = $_POST['result']; 
    } 
?> 
0

答案是一个JSON格式,你需要它才能进行解码,以获得该指数。

<?php 
    header("Access-Control-Allow-Origin: *"); 
    var_dump($_POST); 
    $result = json_decode($_POST, true) 
    $txt = $result['result']; 
?> 
1

你得到在阿雷JSON字符串不能像访问首先你要它

解码像

为阵

$result = json_decode($_POST, true) 
$txt = $result['result']; // text 

as Object

$result = json_decode($_POST) 
$txt = $result->result; // text 


建议

如果通过jQuery的ajax您的决策要求,我认为你正在使用JSON.stringify()或类似的方法转换为字符串,而不是使用JSON.stringify()刚刚出任它是。所以在这种情况下你不需要使用json_decode()

例如

var data = {"result":"sfd"}; 

// data = JSON.stringify(data); // don't use this 

$.ajax({ 
    url : url, 
    data : data, 
    ... 
});