用 JS base64 编码并用 php base64_decode 决定

Encoding with JS base64 and deciding with php base64_decode

我将用户发送到一个新的 link,它的值是用 Javascript 的 btoa 编码的,但是,在 PHP 端,当我对其进行解码时并将值回显出来,回显出的值为"undefined"

    $("#btn-print-bonus").click(function(){
        var id = btoa(id);
        window.open('/pdf/?type=bonus&id='+id+'&name='+fullname+'');
    });

php 文件

$id = base64_decode($_GET["id"]);
echo $id;

问题出在这里 - var id = btoa(id);

var id 将 "mask" 在该点击回调之外的任何名为 id 的 var,所以实际上你正在做

var id = undefined;
id = btoa(id);

这导致 id=dW5kZWZpbmVk 传递给 php - 检查开发人员工具网络选项卡,看看我是否正确

dW5kZWZpbmVk 是字符串 "undefined" base64 编码 - btoa 将给定的参数强制转换为字符串