我正在尝试使用此php代码接收和打印json:
<?php
$data = json_decode(file_get_contents('php://input'), true);
print_r($data);
?>
我没有收到或打印任何数据。但如果我使用这个ajax:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> </script>
<script>
(function($){
function processForm( e ){
$.ajax({
url:'http://mydyndns:8010/has/input_parameters_startReg.php',
dataType: 'json',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({ DeviceID: 23, ForceReg: 0, StartTime: "10/06/2015 17:45"}),
success: function (data) {
},
error: function (e) {
alert(e.responseText);
},
});
e.preventDefault();
}
$('#my-form').submit( processForm );
})(jQuery);
它正常工作,我在浏览器中打印了发布的数据。我怎样才能改变我的php,所以从浏览器直接点击会给我ajax给出的结果?
答案 0 :(得分:2)
函数parse_str将与$ _SERVER ['QUERY_STRING']
结合使用<?php
parse_str($_SERVER['QUERY_STRING'], $output);
$json = json_encode($output);
echo $json;
?>
答案 1 :(得分:0)
我不认为您能够使用GET获取它,因为php://输入似乎只读取POST数据。如果您希望能够使用GET数据,可以参考$ _GET global:
print_r($_GET);
请注意,您也可以使用$ _POST代替php://输入,但这里有一个问题/答案,其中讨论了一些:
编辑:哎呀,我看到这是在我度过美好时光的时候得到了解答。