Iam拼命尝试使用ajax post方法将json对象传递给PHP文件,解码并传回一些东西.
PHP的json_last_error显示4,表示语法错误.
this.send = function()
{
var json = {"name" : "Darth Vader"};
xmlhttp=new XMLHttpRequest();
xmlhttp.open("POST","PHP/config.PHP",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("data="+json);
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("result").innerHTML=xmlhttp.responseText;
};
};
};
<?PHP
if(isset($_POST["data"]))
{
$data = $_POST["data"];
$res = json_decode($data, true);
echo $data["name"];
}
?>
解决方法:
如果要将其作为json发送,则必须将其编码为json.
xmlhttp.send("data="+encodeURIComponent(JSON.stringify(json)));
目前您所拥有的将发送类似data = [Object object]的内容.
变量json是一个不是json的JavaScript对象. JSON是一种数据交换格式,基本上是javascript的一个子集.见http://json.org
var object = {"name" : "Darth Vader"};// a JavaScript object
var json = '{"name" : "Darth Vader"}';// json holds a json string
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。