2

您好我正在尝试使用 Javascript 通过 Ajax 将 Json 发送到 PHP。当我在萤火虫上查看数据时,index.html 正确发送了数据。它显示具有正确数据的 Json 类型。但是,似乎我无法读取 php 上的 JSON。我无法使用 $_POST 访问它。我尝试使用 $_POST['name'] 并且没有响应。当我尝试使用 $_POST 时,响应是数组。你能帮我么?

这是我的 JavaScript 代码。

<html>
<head>
<script type="text/javascript">
    //Create Http request depending on browser
    var xmlhttp;
        if (window.XMLHttpRequest)
          {// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();}
        else
          {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}

    xmlhttp.onreadystatechange=function(){
      if (xmlhttp.readyState==4 && xmlhttp.status==200){
        document.getElementById("myDiv").innerHTML=xmlhttp.responseText;}
      }

    // Function to create 
    var url = "control.php";
    xmlhttp.open("POST",url,true);
    xmlhttp.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    var data=JSON.stringify({"name":"John", "time":"2pm"});
    xmlhttp.send(data);
}
</script>
</head>
<body>
<h2>AJAX</h2>
<button type="button" onclick="loadXMLDoc()">Request data</button>
<div id="myDiv"></div>
</body>
</html>

这是我的php代码

<?php
include_once('JSON.php');   
$json = new Services_JSON();
$value = $json->decode($_POST['name']);
echo $value;
?>

已经为此工作了几天,我非常感谢您提供的任何帮助。谢谢!

4

3 回答 3

2

这是:

print_r($GLOBALS['HTTP_RAW_POST_DATA']);
于 2012-05-03T06:03:32.177 回答
1

我认为它需要先解析整个帖子。

<?php
include_once('JSON.php');   
$json = new Services_JSON();
$value = $json->decode($_POST);
echo $value;
?>

但是你还需要这些包括吗? http://www.php.net/manual/en/function.json-decode.php

include_once('JSON.php');   
$json = new Services_JSON();

你不能这样做吗?

echo json_decode($_POST)
于 2012-05-03T06:04:25.847 回答
0

一个更好的解决方案(见这里)是使用:

$json = json_decode(file_get_contents("php://input"), true) ?: [];
print_r($json);
于 2015-09-22T16:12:41.253 回答