使用ajax post方法将javascript对象传递给php文件

sal*_*cis 3 javascript php ajax json

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"];
}
?>
Run Code Online (Sandbox Code Playgroud)

Mus*_*usa 5

如果要将其作为json发送,则必须将其编码为json.

xmlhttp.send("data="+encodeURIComponent(JSON.stringify(json)));
Run Code Online (Sandbox Code Playgroud)

目前您所拥有的将发送类似的东西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
Run Code Online (Sandbox Code Playgroud)