我想在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>
&#13;
header("Content-Type: application/json;ì");
$str_json = file_get_contents('php://input');
$arrayPHP = (array) json_encode($str_json,TRUE);
var_dump($arrayPHP);
这是php输出
我做错了什么?
答案 0 :(得分:0)
而不是
$arrayPHP = (array) json_encode($str_json,TRUE);
试
$arrayPHP = (array) json_decode($str_json,TRUE);