为什么我们要在发送Javascript之前序列化数据?

时间:2014-02-12 13:37:55

标签: javascript serialization

我想知道为什么我们需要在发送到服务器之前序列化JavaScript对象。

示例:

var send_data= {
    id : 10,
    name : 20,

    school : {
       name : "xyz",
       location : "some place"
    }
}

如果我在没有序列化的情况下发送此数据,请使用像这样的ajax

$.ajax({
    type: "POST",
    url: "some.php",
    data: { "info" : send_data}
})

这段代码有问题吗?因为我可以访问所有数据而无需反序列化...

$data = $_POST["info"];
echo $data["school"]["name"];

1 个答案:

答案 0 :(得分:1)

数据必须被序列化,因为网络流量由一系列字节组成。在某些时候,您的数据结构必须变成可以通过网络发送的东西。

但是,如果对数据参数使用对象而不是字符串,则jQuery的.ajax()函数已经进行序列化。所以没必要在那里做。

我不太了解PHP,但如果你的代码有效,那么显然PHP也会自动反序列化数据。

所以我说是的,序列化是必要的,但是按照你描述的方式实现它会在后台序列化。