我想使用JavaScript发送JSON字符串,然后使用php函数编码将其转换为数组。

使用JavaScript转换字符串并将其用Ajax发送到php页面后,我无法将其转换为数组。

那就是代码。



function goJsonAjaxPhp()
{
    var myObject ={name:"Andreas",surname:"Grech",age:20};
    var str_json = JSON.stringify(myObject);
    var xhr;
    if(window.XMLHttpRequest)
    {
        xhr = new XMLHttpRequest();
    }
    else
    {
        xhr = new ActiveXObject("Microsoft.HMLHTTP");
    }
    xhr.onreadystatechange = handler;
    xhr.open("POST","page_php.php",true);
    xhr.setRequestHeader("Content-type", "application/json");
    xhr.send(str_json);

    function handler()
    {
        if(xhr.readyState == 4 && xhr.status == 200)
        {
            document.getElementById("idResult").innerHTML= xhr.responseText;
        }
    }
}

<button onclick=goJsonAjaxPhp()> Json Ajax-PHP </button>
<button onclick=goJsonPhp()> Json Only-PHP </button>
<button onclick=goJsonJavascript()> Json Javascript </button>

<div id=idResult></div>





header("Content-Type: application/json;ì");
$str_json = file_get_contents('php://input');
$arrayPHP = (array) json_encode($str_json,TRUE);
var_dump($arrayPHP);


这是PHP的输出



我究竟做错了什么?

最佳答案

代替

$arrayPHP = (array) json_encode($str_json,TRUE);


尝试

$arrayPHP = (array) json_decode($str_json,TRUE);

09-20 21:27