我正在发送一个Ajax请求,该请求将对象objectVariable
发送到PHP文件:
$.post(url, {action : 'function' , object : objectVariable });
然后,PHP文件将
objectVariable
存储在$_SESSION['objectVariable']
中(我省略了验证以使其清楚):function function_callback() {
if(!session_id())
session_start();
$_SESSION['objectVariable'] = $_POST['objectVariable'];
}
当用户转到站点的其他页面时,
$_SESSION['objectVariable']
将再次由Ajax从PHP发送给用户。在这里,我应该将
$_SESSION['objectVariable']
中存储的数组编码为JSON字符串://inside other Axax callback function
echo json_encode($_SESSION['objectVariable']);
没问题,但是我也可以将JSON字符串存储到
$_SESSION['objectVariable']
中:function function_callback() {
if(!session_id())
session_start();
$_SESSION['objectVariable'] = json_encode($_POST['objectVariable']);
}
之后,只需
echo $_SESSION['objectVariable']
即可将其发送到Javascript文件。我想知道哪种方法更好:将数组存储在
$_SESSION['objectVariable']
中,或存储JSON字符串。有什么建议吗?
最佳答案
在Javascript / PHP之间发送数据时,我始终将其编码为JSON字符串。它使事情变得更简单。实际上,当您第一次将其发送到服务器时,我会立即将其设置为JSON.stringify()
。
这样,您还将始终知道数据的类型。