如何在 PHP 中的 JavaScript 对象中使用 base64_decode()?

How do I base64_decode() in a JavaScript object in PHP?

如果我有一个 JavaScript 对象 "cat" 并用 btoa() 对其进行编码,我可以 base64_decode() 它在 PHP 中并且 访问猫的属性,如颜色等?还是PHP只把猫看成一个物体,却不知道它是什么物体?

JavaScript:

var cat = {color: "grey", name: "Spot", size: 46};
var base64cat = btoa(cat);

PHP:

$cat = base64_decode($_POST['cat']);

btoa() 的参数必须是字符串。如果你编码一个对象,它首先被转换成一个字符串,所以它等同于

var base64cat = btoa("[object Object]");

这没用。

您应该先序列化对象,然后对其进行编码:

var base64cat = btoa(JSON.stringify(cat));

然后在 PHP 中解码它,你使用 base64_decode()json_decode()

$cat = json_decode(base64_decode($_POST['cat']));

但是一开始就没有真正需要使用 base64 编码。只是 post JSON.