我想知道为什么我们需要在发送到服务器之前序列化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"];
答案 0 :(得分:1)
数据必须被序列化,因为网络流量由一系列字节组成。在某些时候,您的数据结构必须变成可以通过网络发送的东西。
但是,如果对数据参数使用对象而不是字符串,则jQuery的.ajax()
函数已经进行序列化。所以没必要在那里做。
我不太了解PHP,但如果你的代码有效,那么显然PHP也会自动反序列化数据。
所以我说是的,序列化是必要的,但是按照你描述的方式实现它会在后台序列化。