我想使用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);