我将一个对象传递给这样的PHP脚本:
$http({
method: 'POST',
url: 'updateCoins.php',
data: {flips: $scope.data.flips, error: $scope.data.pe},
})
在我的PHP脚本中,我尝试过:
$data = file_get_contents("php://input");
和
$data = json_decode(file_get_contents("php://input"));
然后我尝试回复收到的值,如下所示:
echo $data.flips
或
echo $data[flips]
或
echo $data->flips
我继续得到一个空白的结果或“翻转”这个词。如何访问这些变量?
答案 0 :(得分:2)
如果数据是通过JSON编码发送的,那么json_decode()
就有意义了。我怀疑您的数据是x-www-form-urlencoded
(例如: name = john& age = 7 )。在这种情况下,PHP会将它解析为$_POST
数组。如果您希望自己完成,并处理任何一种情况,您可以执行以下操作:
// Read content-type to determine whether it's JSON data
$type = $_SERVER["CONTENT_TYPE"];
$content = file_get_contents('php://input');
if(strpos($type,'json') > -1):
$data = json_decode($content, true);
else:
parse_str($content, $data);
endif;
print_r($data);
您始终可以使用echo file_get_contents('php://input');
答案 1 :(得分:1)
var data = 'flips='+$scope.data.flips+'&error='+$scope.data.pe;
$http({
method: 'POST',
url: 'updateCoins.php',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
data: data
});
或者你可以像BeetleJuice推荐的那样做。在我的应用程序中,我只是执行以下操作,以便其余代码不会中断。
if (empty($_POST) && file_get_contents('php://input')!==""){
$_POST = json_decode(file_get_contents('php://input'), true);
}
此时您可以使用$_POST['flips']
和$_POST['error']